我正在尝试将unicode(泰米尔语)转换为十六进制值并将相同的十六进制值转换回Unicode(泰米尔语)
以下是我用来将Unicode转换为十六进制的代码
<?php
$data = 'தமிழ்';
//Convert Tamil text to hexa decimal codes
$mb_hex = '';
for($i = 0 ; $i<mb_strlen($data,'UTF-8') ; $i++){
$c = mb_substr($data,$i,1,'UTF-8');
$o = unpack('N',mb_convert_encoding($c,'UCS-4BE','UTF-8'));
$mb_hex .= sprintf('%04X',$o[1]);
}
echo "Hex Chars = ".$mb_hex;
?>
如何将十六进制值转换回泰米尔语?
答案 0 :(得分:1)
您可以使用函数html_entity_decode
,其中编码设置为HTML unicode格式,其格式为த
(2980是0BA4(十六进制格式)的十进制等效值)த
。
html_entity_decode(preg_replace("/([0-9A-F]{4})/", "&#x\\1;", $mb_hex), ENT_NOQUOTES, 'UTF-8');
由于您在代码4
的{{1}}中使用了X
数字和大写%04X%
字母,因此这里的数字为sprintf
和大写字母4
中使用了A-F
。