我使用JSON.stringify()函数对AJAX发送到PHP的JS对象进行字符串化处理。
JSON.stringify()
当JSON.stringify函数将Unicode字符编码为格式\uxxxx(例如\u000a)时,就会出现问题。我的问题是如何在PHP中将这些字符转换为常规unicode字符?
\uxxxx
\u000a
看到输出UTF-16?有点卡住
这将转换为UTF-8:
function unescape_utf16($string) { /* go for possible surrogate pairs first */ $string = preg_replace_callback( '/\\\\u(D[89ab][0-9a-f]{2})\\\\u(D[c-f][0-9a-f]{2})/i', function ($matches) { $d = pack("H*", $matches[1].$matches[2]); return mb_convert_encoding($d, "UTF-8", "UTF-16BE"); }, $string); /* now the rest */ $string = preg_replace_callback('/\\\\u([0-9a-f]{4})/i', function ($matches) { $d = pack("H*", $matches[1]); return mb_convert_encoding($d, "UTF-8", "UTF-16BE"); }, $string); return $string; }