是否可以输入字符并取回unicode值?例如,我可以在HTML中输入&#12103以输出“⽇”,是否可以将该字符作为函数的参数并获得数字作为输出而无需构建unicode表?
$val = someFunction("⽇");//returns 12103
还是相反?
$val2 = someOtherFunction(12103);//returns "⽇"
我希望能够将实际字符输出到页面上而不是代码中,并且如果可能的话,我也希望能够从字符中获取代码。我最想要的是php.net/manual/en/function.mb- decode-numericentity.php,但是我无法正常工作,这是我需要的代码还是我走错了轨道?
function _uniord($c) { if (ord($c{0}) >=0 && ord($c{0}) <= 127) return ord($c{0}); if (ord($c{0}) >= 192 && ord($c{0}) <= 223) return (ord($c{0})-192)*64 + (ord($c{1})-128); if (ord($c{0}) >= 224 && ord($c{0}) <= 239) return (ord($c{0})-224)*4096 + (ord($c{1})-128)*64 + (ord($c{2})-128); if (ord($c{0}) >= 240 && ord($c{0}) <= 247) return (ord($c{0})-240)*262144 + (ord($c{1})-128)*4096 + (ord($c{2})-128)*64 + (ord($c{3})-128); if (ord($c{0}) >= 248 && ord($c{0}) <= 251) return (ord($c{0})-248)*16777216 + (ord($c{1})-128)*262144 + (ord($c{2})-128)*4096 + (ord($c{3})-128)*64 + (ord($c{4})-128); if (ord($c{0}) >= 252 && ord($c{0}) <= 253) return (ord($c{0})-252)*1073741824 + (ord($c{1})-128)*16777216 + (ord($c{2})-128)*262144 + (ord($c{3})-128)*4096 + (ord($c{4})-128)*64 + (ord($c{5})-128); if (ord($c{0}) >= 254 && ord($c{0}) <= 255) // error return FALSE; return 0; } // function _uniord()
和
function _unichr($o) { if (function_exists('mb_convert_encoding')) { return mb_convert_encoding('&#'.intval($o).';', 'UTF-8', 'HTML-ENTITIES'); } else { return chr(intval($o)); } } // function _unichr()