>  기사  >  백엔드 개발  >  PHP가 중국어 메소드를 이스케이프하지 않고 json_decode를 구현하는 방법 소개

PHP가 중국어 메소드를 이스케이프하지 않고 json_decode를 구현하는 방법 소개

巴扎黑
巴扎黑원래의
2018-05-22 09:50:272724검색

이 글에서는 주로 PHP에서 중국어를 탈출하지 않고 json_decode를 구현하는 방법을 소개합니다. 중국어를 탈출하지 않고 json_decode를 구현하기 위한 php5.4+ 및 5.3 버전의 구체적인 조작 기술과 관련 주의 사항을 예제 형식으로 분석합니다. 참고로

이 문서의 예에서는 PHP가 중국어를 이스케이프 처리하지 않고 json_decode를 구현하는 방법을 설명합니다. 참조를 위해 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

기본적으로 PHP의 json_decode 메소드는 특수 문자를 이스케이프하고 중국어를 유니코드 인코딩 형식으로 변환합니다. Unicode编码形式。

这使得数据库查看文本变得很麻烦。所以我们需要限制对于中文的转义。

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

要限制中文,使用JSON_UNESCAPED_UNICODE

이로 인해 텍스트 데이터베이스 보기가 번거로워집니다. 그래서 우리는 중국인의 탈출을 제한해야 합니다.

PHP5.4+ 버전의 경우 json_decode 함수의 두 번째 매개변수를 사용하여 이스케이프 범위를 제한할 수 있습니다.

🎜🎜중국어를 제한하려면 JSON_UNESCAPED_UNICODE 매개변수를 사용하세요. 🎜
json_encode($a, JSON_UNESCAPED_UNICODE);
🎜🎜🎜PHP5.3 버전의 경우 먼저 ASCII 127 이상의 문자를 HTML 값으로 변환하여 json_decode 함수에 의한 트랜스코딩을 방지할 수 있습니다. 🎜🎜🎜
function my_json_encode($arr)
{
    //convmap since 0x80 char codes so it takes all multibyte codes (above ASCII 127). So such characters are being "hidden" from normal json_encoding
    array_walk_recursive($arr, function (&$item, $key) { if (is_string($item)) $item = mb_encode_numericentity($item, array (0x80, 0xffff, 0, 0xffff), 'UTF-8'); });
    return mb_decode_numericentity(json_encode($arr), array (0x80, 0xffff, 0, 0xffff), 'UTF-8');
}

위 내용은 PHP가 중국어 메소드를 이스케이프하지 않고 json_decode를 구현하는 방법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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