我從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 關注
- 229 瀏覽
添加回答
舉報
0/150
提交
取消