>  기사  >  백엔드 개발  >  json_encode 중국어 트랜스코딩 문제 해결

json_encode 중국어 트랜스코딩 문제 해결

angryTom
angryTom앞으로
2020-01-17 17:42:362805검색

json_encode 중국어 트랜스코딩 문제 해결

인터페이스 개발을 할 때 json 데이터를 반환하는 데 자주 사용됩니다. PHP에는 배열을 json 데이터 형식으로 변환하는 함수인 json_encode가 있습니다. 그러나 배열에 중국어 문자가 포함되어 있으면 반환되는 내용을 본 적이 있습니까? 데이터가 비어 있나요? 아래에 두 가지 솔루션이 작성되어 있습니다

첫 번째 방법

중국어 urlencode, 이 방법은 여러 자리 배열이 있는 경우 문제가 됩니다.

function encode_json($str) {  
    return urldecode(json_encode(url_encode($str)));      
}  
function url_encode($str) {  
    if(is_array($str)) {  
        foreach($str as $key=>$value) {  
            $str[urlencode($key)] = url_encode($value);  
        }  
    } else {  
        $str = urlencode($str);  
    }  
      
    return $str;  
}

두 번째 방법

JSON_UNESCAPED_UNICODE 매개변수를 추가하세요. php5.4 이후 버전만 사용 가능합니다

json_encode($arr,JSON_UNESCAPED_UNICODE);

저는 사용할 때 보통 여러 개의 매개변수를 사용합니다

$data_string=json_encode($para,JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE);

이 문제를 상기시키기 위해 이 글을 씁니다

이 글은 php 중국 사이트 php에서 따왔습니다. tutorial 칼럼, 학습에 오신 것을 환영합니다!

위 내용은 json_encode 중국어 트랜스코딩 문제 해결의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 www.phpsong.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제