json_encode를 사용한 이상한 JSON 인코딩
저는 JSON API Plugin(http://wordpress.org/extend/plugins/json-api/) 과 함께 WordPress를 사용하여 다른 사이트에 대한 응답을 생성하고 있습니다.
정말 이상한 문제가 발생했습니다(PHP 5.3.6을 사용하고 있습니다). 다음 배열 http://pastebin.com/xdfYjrvK 을 json_message로 전달하면 다음(json content-type 사용)이 나타납니다. http://pastebin.com/T61XGPP5
따라서 처음에 문제가 되는 것은 위의 예에서 2609이고 마지막에 0입니다. 응답의 크기에 따라 더 많은 내용이 -> 더 높은 16진수입니다.또한 응답의 양이 "충분히 높은" 경우에만 표시되므로 작은 응답에서도 작동합니다.
처음에는 플러그인인 줄 알았는데 로컬(두 개의 다른 Mac OS X에서) 작동하고 VPS의 모든 패키지(Debian, Apache, Nginx, PHP)를 최신 버전으로 업데이트했습니다.
$결과를 application/json 대신 일반 텍스트로 출력하지 않고 컨텐츠 유형을 전송할 때만 표시됩니다.
$charset = get_option('blog_charset');
if (!headers_sent()) {
header('HTTP/1.1 200 OK', true);
header("Content-Type: application/json; charset=$charset", true);
}
echo $result;
$charset은 utf-8로 설정됩니다.
Google 크롬 콘솔에는 "Resource는 Document로 해석되지만 MIME 형식의 application/json과 함께 전송됩니다."라고 표시됩니다.
여기서 무슨 일이 일어나고 있는지 아는 사람?
이것은 청크된 인코딩(http://en.wikipedia.org/wiki/Chunked_transfer_encoding) 처럼 보입니다.응답에서 헤더가 내용 길이를 올바르게 설정하고 있는지 확인하여 웹 서버가 CTE를 사용하도록 강요하지 않는지 확인합니다.
json이 가지고 있는 한 가지 요구 사항은 당신이 그것에 주는 모든 데이터가 UTF-8 인코딩이어야 한다는 것입니다.json_graphics는 이 작업을 자동으로 수행하지 않습니다.그래서 이걸 실행해 보세요.array_map("utf8_encode", $array);
당신이 json_design 하기 전에.
그 외에는... 이상하게 생겼기 때문에...
언급URL : https://stackoverflow.com/questions/6506930/weird-json-encoding-using-json-encode
'source' 카테고리의 다른 글
열이 목록인 data.frame 생성 (0) | 2023.09.17 |
---|---|
자신의 WP 테마에서 이미지 정렬이 작동하지 않음 (0) | 2023.09.17 |
WIX 웹 사이트를 외부 mariadb 또는 mysql 데이터베이스에 연결하는 방법 (0) | 2023.09.17 |
jQuery "읽기 전용 아님" 선택기 (0) | 2023.09.17 |
jQuery selector에서 css :hover 상태를 정의하는 방법은? (0) | 2023.09.17 |