一段代码说明问题:
$str = '{"name":"\xe7"}';$json = json_decode($str, true);var_dump($json);
$str = '{"name":"\xe7"}';
$str = preg_replace('/\\\x(..)/', '\u00$1', $str);
$json = json_decode($str, true);
var_dump($json);
array(1) {
["name"]=> string(2) “ç"
}
$str = '{"name":"\xe7"}';
$str = preg_replace('/\\\x(..)/', '\u00$1', $str);
$json = json_decode($str, true);
var_dump($json);
array(1) {
["name"]=> string(2) “ç"
}
x?? 是 ascii 码的十六进制表示
u???? 是 unicode 的十六进制表示
前面加上字符 \ 是为了防止歧义
x?? 是 ascii 码的十六进制表示
u???? 是 unicode 的十六进制表示
前面加上字符 \ 是为了防止歧义