1 package OpenILS::Template::Plugin::Unicode;
2 use Unicode::Normalize;
4 sub new { return bless {}, __PACKAGE__ }
5 sub load { return __PACKAGE__ }
7 sub C { shift; return NFC(@_); }
8 sub D { shift; return NFD(@_); }
9 sub entityDecode { shift; $_ = shift; s/&#x([0-9a-fA-F]+);/chr(hex($1))/egos; return $_ }
10 sub entityEncode { shift; $_ = shift; s/(\PM\pM+)/sprintf('&#x%0.4x;',ord(NFC($1)))/sgoe; return $_ }