如何在PHP中将UTF-8字符串转换为十六进制代码点?

我从UTF-8字符串获取十六进制码位,通过json_encode

substr(json_encode($str), 1, -1);

但是, 不会转换 ASCII 范围内的字符。例如json_encode

sÆs

我得到

s\u00C6s

但我想得到

\u0073\u00C6\u0073


红颜莎娜
浏览 207回答 1
1回答

沧海一幻觉

我为多字节字符获取json_encode,并将其组合为 ASCII 字符。function utf8toUnicode($str){&nbsp; $unicode = "";&nbsp; $len = mb_strlen($str);&nbsp; for($i=0;$i<$len;$i++){&nbsp; &nbsp; $utf8char = mb_substr($str,$i,1);&nbsp; &nbsp; $unicode .= strlen($utf8char)>1&nbsp; &nbsp; &nbsp; ?trim(json_encode($utf8char),'"')&nbsp; &nbsp; &nbsp; :('\\u00'.bin2hex($utf8char))&nbsp; &nbsp; ;&nbsp; }&nbsp; return $unicode;}&nbsp;$str = 'sÆs';&nbsp;echo utf8toUnicode($str);&nbsp; // \u0073\u00c6\u0073
打开App,查看更多内容
随时随地看视频慕课网APP