PHP将unicode字形数字转换为UTF-8 gylph

PHP将unicode字形数字转换为UTF-8 gylph,php,string,utf-8,Php,String,Utf 8,在PHP中,如何转换如下所示的字形值字符串: 0x00E3 0x00E9 0x00EA 0x00EB 0x00E8 0x00ED 0x00EE 0x00EF 0x00EC 0x00F1 0x00F3 进入正确的UTF-8字形?我自己找到了,修改自: 函数val2utf8($val) { $val=hexdec($val); 如果($val6)+192.chr($VAL63)+128); 如果($val>12)+224.chr(($val>>6)和63)+128.chr($

在PHP中,如何转换如下所示的字形值字符串:

0x00E3 
0x00E9 
0x00EA 
0x00EB 
0x00E8 
0x00ED 
0x00EE 
0x00EF 
0x00EC 
0x00F1 
0x00F3 

进入正确的UTF-8字形?

我自己找到了,修改自:

函数val2utf8($val)
{
$val=hexdec($val);
如果($val6)+192.chr($VAL63)+128);
如果($val>12)+224.chr(($val>>6)和63)+128.chr($val&63)+128);
如果($val>18)+240.chr(($val>>12)和63)+128.chr(($val>>6)和63)+128.chr($val&63)+128);
返回“”;
}

0x00E3
应该是
U+00E3
还是字节
00E3
?您只处理
U+00FF
以下的字符还是任意Unicode字符?
function val2utf8($val)
{
    $val=hexdec($val);
    if($val<=0x7F) return chr($val);
    if($val<=0x7FF) return chr(($val>>6)+192).chr(($val&63)+128);
    if($val<=0xFFFF) return chr(($val>>12)+224).chr((($val>>6)&63)+128).chr(($val&63)+128);
    if($val<=0x1FFFFF) return chr(($val>>18)+240).chr((($val>>12)&63)+128).chr((($val>>6)&63)+128).chr(($val&63)+128);
    return '';
}