JSON을 사용하여 PHP에서 자바 스크립트로 배열을 보내고 있습니다. 배열이 데이터베이스에서 데이터를 가져옵니다. JSON과 외국 캐릭터의 문제점에 대해 여러 주제를 다뤘습니다. 문제를 해결하기 위해 인코딩을 utf-8로 설정해야한다고 모두가 말합니다. 나는 그것을했다고 생각하지만 그것은 단지 도움이되지 않습니다. 그래서 나는 문제가 무엇인지 알아보기 위해 테스트를 실시한다. 쉽고 간단하게하기 위해 json_encode() 함수에 폴란드 문자로 문자열을 전달하려고합니다. 그래서 나는 index.php 파일을 만들었다. 내 텍스트 편집기에서 내가 BOM이없는 UTF-8 옵션 인코딩을 선택하고 난 코드에 시작 :JSON + 폴란드어 문자
<?php
header('Content-Type: text/html; charset=utf-8');
$data = "polish characters: ążśęłóćźć";
$jsonData = json_encode($data);
echo mb_detect_encoding($data) . "<br />;
echo $jsonData;
?>
결과는 다음과 같습니다
UTF-8
"polish characters : \u0105\u017c\u015b\u0119\u0142\u00f3\u0107\u017a\u0107"
나는 여전히 출력 할 수 없습니다 폴란드어 문자. 나는 무엇이 잘못되었는지를 모른다. 제발 도와주세요 :)
이 출력은 어디에서 볼 수 있습니까? JSON 데이터를 HTML 페이지로 바로 보내고 의미있는 방식으로 렌더러가 될 것으로 기대하지는 않습니다. 자바 스크립트 스크립트의 일부가 될 수 있지만, 어떻게 든 처리해야합니다. – Bruno
PHP에 오타가 있습니다. – Daedalus
JSON 출력시 헤더를 text/html로 설정하는 이유는 무엇입니까? JSON으로 문자열을 인코딩하지 않으면 (심지어 인코딩 한 다음 해독하면) 폴란드 문자가 표시됩니다. 또는 JSON으로 데이터를 출력하고 싶다면 UTF-8 인코딩 (\ u0105)이 유지되고 그것을 읽는 모든 코드로 변환 할 수 있습니다. –