>  기사  >  백엔드 개발  >  PHP에서 중국어로 왜곡된 JSON 데이터 문제를 해결하는 방법

PHP에서 중국어로 왜곡된 JSON 데이터 문제를 해결하는 방법

PHPz
PHPz원래의
2024-03-09 08:48:03440검색

PHP에서 중국어로 왜곡된 JSON 데이터 문제를 해결하는 방법

PHP에서 JSON 데이터의 중국어 왜곡 문제를 해결하는 방법

PHP를 사용하여 개발할 때 데이터를 JSON 형식으로 출력하는 상황을 자주 접하게 됩니다. 그러나 중국어 데이터가 반환될 때 가끔 잘못된 문자가 나타나 프런트 엔드 페이지의 표시 및 데이터 처리에 문제가 발생하는 경우가 있습니다. 이 기사에서는 개발자가 이 일반적인 문제를 더 잘 처리할 수 있도록 돕기 위해 PHP에서 중국어로 왜곡된 JSON 데이터 문제를 해결하는 몇 가지 방법을 소개합니다. 아래에서는 일반적으로 사용되는 몇 가지 솔루션을 특정 코드 예제와 함께 자세히 소개합니다.

방법 1: json_encode 함수 사용 시 두 번째 매개변수 JSON_UNESCAPED_UNICODE 설정

PHP에서 json_encode 함수를 사용하여 배열이나 개체를 JSON 형식 문자열로 변환할 때 두 번째 매개변수 JSON_UNESCAPED_UNICODE를 설정하면 중국어가 변환되는 것을 방지할 수 있습니다. 유니코드 인코딩으로 정의되어 문자가 깨집니다. 다음은 샘플 코드입니다.

$data = array(
    'name' => '张三',
    'age' => 30
);

echo json_encode($data, JSON_UNESCAPED_UNICODE);

이번 예제에서는 json_encode를 통해 $data 배열을 JSON 형식 문자열로 변환하고, 한자가 이스케이프되지 않고 원래 한자가 유지되도록 JSON_UNESCAPED_UNICODE 매개 변수를 설정합니다.

방법 2: 헤더 함수를 사용하여 Content-Type을 application/json으로 설정

JSON 데이터를 반환할 때 헤더 함수를 사용하여 application/json에 대한 응답의 Content-Type을 설정하여 브라우저에 다음을 알릴 수 있습니다. 반환된 데이터는 JSON 형식입니다. 이는 브라우저가 반환된 JSON 데이터를 올바르게 구문 분석하고 문자가 왜곡되는 것을 방지하는 데 도움이 됩니다. 다음은 샘플 코드입니다.

$data = array(
    'name' => '李四',
    'age' => 25
);

header('Content-Type: application/json; charset=utf-8');
echo json_encode($data);

이 예에서는 먼저 헤더 함수를 사용하여 Content-Type을 application/json으로 설정하고 인코딩을 utf-8로 지정한 다음 json_encode를 사용하여 $data 배열을 JSON 형식 문자열 반환.

방법 3: mb_convert_encoding 함수를 사용하여 인코딩을 변환

때때로 JSON_UNESCAPED_UNICODE 매개변수가 설정되거나 Content-Type이 application/json으로 설정되어 있어도 왜곡된 문자가 계속 나타날 수 있습니다. 이때 mb_convert_encoding 함수를 사용하여 데이터를 UTF-8 인코딩으로 변환해 볼 수 있습니다. 샘플 코드는 다음과 같습니다.

$data = array(
    'name' => '王五',
    'age' => 35
);

$jsonData = json_encode($data);

$jsonData = mb_convert_encoding($jsonData, 'UTF-8', 'UTF-8');

echo $jsonData;

이 예에서는 먼저 json_encode를 사용하여 데이터를 JSON 형식 문자열로 변환한 다음 mb_convert_encoding을 통해 UTF-8 인코딩으로 변환하고 마지막으로 프런트 엔드 페이지로 반환합니다.

요약

개발 중에 PHP에서 반환된 중국어 JSON 데이터가 왜곡되는 문제가 발생하면 위의 방법을 시도하여 해결할 수 있습니다. JSON_UNESCAPED_UNICODE 매개변수를 설정하거나, Content-Type을 application/json으로 설정하거나, mb_convert_encoding 함수를 사용하여 인코딩을 변환하면 중국어 문자 깨짐 문제를 효과적으로 피할 수 있습니다. 본 글에서 소개한 방법이 비슷한 문제를 겪고 있는 개발자들에게 도움이 되어 데이터 전송 시 한자의 특징이 정확하게 유지될 수 있기를 바랍니다.

위 내용은 PHP에서 중국어로 왜곡된 JSON 데이터 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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