【发布时间】:2020-05-13 06:34:15
【问题描述】:
我通过 json_encode as 从 UTF-8 字符串获取 HEX 代码点
substr(json_encode($str), 1, -1);
但是,json_encode 不会转换 ASCII 范围内的字符。例如,
对于
sÆs
我明白了
s\u00C6s
但我想得到
\u0073\u00C6\u0073
【问题讨论】:
我通过 json_encode as 从 UTF-8 字符串获取 HEX 代码点
substr(json_encode($str), 1, -1);
但是,json_encode 不会转换 ASCII 范围内的字符。例如,
对于
sÆs
我明白了
s\u00C6s
但我想得到
\u0073\u00C6\u0073
【问题讨论】:
我将 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
【讨论】: