我从UTF-8字符串获取十六进制码位,通过json_encodesubstr(json_encode($str), 1, -1);但是, 不会转换 ASCII 范围内的字符。例如json_encode为sÆs我得到s\u00C6s但我想得到\u0073\u00C6\u0073
1 回答
沧海一幻觉
TA贡献1824条经验 获得超5个赞
我为多字节字符获取json_encode,并将其组合为 ASCII 字符。
function utf8toUnicode($str){
$unicode = "";
$len = mb_strlen($str);
for($i=0;$i<$len;$i++){
$utf8char = mb_substr($str,$i,1);
$unicode .= strlen($utf8char)>1
?trim(json_encode($utf8char),'"')
:('\\u00'.bin2hex($utf8char))
;
}
return $unicode;
}
$str = 'sÆs';
echo utf8toUnicode($str); // \u0073\u00c6\u0073
- 1 回答
- 0 关注
- 206 浏览
添加回答
举报
0/150
提交
取消