>백엔드 개발 >PHP 문제 >PHP json_decode 중국어 이스케이프 문제 관련

PHP json_decode 중국어 이스케이프 문제 관련

藏色散人
藏色散人원래의
2020-10-09 11:10:453082검색

php json decode转义的使用方法:首先使用语句“json_encode($a, JSON_UNESCAPED_UNICODE);”把特殊字符进行转义;然后通过该函数的第二个参数限制转义范围即可。

PHP json_decode 중국어 이스케이프 문제 관련

推荐:《PHP视频教程》 

PHP json_decode中文转义的问题

默认情况下PHP的 json_decode 方法会把特殊字符进行转义,还会把中文转为Unicode编码形式。在有些情况下不希望进行这种转义。

对于PHP5.4+版本,json_decode函数第二个参数,可以用来限制转义范围。要限制中文,使用JSON_UNESCAPED_UNICODE参数。

json_encode($a, JSON_UNESCAPED_UNICODE);

对于PHP5.3及以前版本,可以用如下方式转回中文:

$originstr = '{"name":"张三"}';
$jsonobject = json_decode($originstr);
// badstr: {"name":"\u5f20\u4e09"}
$badstr = json_encode($jsonobject);
// goodstr: {"name":"张三"} 
$goodstr = preg_replace_callback("#\\\u([0-9a-f]{4})#i", function($matches){
  return iconv('UCS-2', 'UTF-8', pack('H4', $matches[1]));
  }, $badstr);

위 내용은 PHP json_decode 중국어 이스케이프 문제 관련의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.