.getJ에서 인코딩을 설정하는 방법SON jQuery
jQuery와 .$.getJSON()
i 인코딩에 .인코딩에 문제가 있습니다. 는 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★.charset=ISO-8859-1
이 ,, 드, 음, 음, 음, 음, 이, are, are, are, are, are, are, are, are, are, ,, ,, ,, areUTF-8
에서 $.getJSON
전화요?
「 」를 사용하고 $.getJSON()
전에 할 수 .
$.ajaxSetup({
scriptCharset: "utf-8",
contentType: "application/json; charset=utf-8"
});
은 '어느 문자집합'이 아니라 ' 문자집합'을 할 수 .utf-8
.
여기에서는 옵션에 대해 설명합니다.
contentType :
는, 합니다.content-type
은 . 입니다.application/x-www-form-urlencoded
이치노
scriptCharset :
음음 with with with with jsonp
★★★★★★★★★★★★★★★★★」script
및 typedata type "GET " 입니다.요청을 특정 문자 집합으로 강제로 해석합니다.원격 컨텐츠와 로컬 컨텐츠 간의 문자 집합 차이에만 필요합니다.
둘 중 하나 또는 둘 다 필요할 수 있습니다.
인코딩을 변경하려면 를 사용해야 할 것 같습니다.contentType
파라미터)success
★★★★★★★★★★★★★★★★★」error
에서는 콜음음음음음 you you you you you you you you you you가 있다고 합니다.<div id="success"></div>
★★★★★★★★★★★★★★★★★」<div id="error"></div>
: 에 in:) :
$.ajax({
type: "POST",
url: "SomePage.aspx/GetSomeObjects",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: "{id: '" + someId + "'}",
success: function(json) {
$("#success").html("json.length=" + json.length);
itemAddCallback(json);
},
error: function (xhr, textStatus, errorThrown) {
$("#error").html(xhr.responseText);
}
});
사실 한 시간 전에 이걸 해야 했는데, 정말 우연이네요!
Wireshark를 사용하여 JSON 콜을 분석해야 합니다.그러면 다음과 같이 JSON 페이지 형성에 charset이 포함되어 있는지 여부를 확인할 수 있습니다.
- 페이지가 간단한 경우 텍스트/html
0000 48 54 50 2f 31 2e 31 20 32 30 30 4f 4b 0d HTTP/1.1 200 OK. 0010 0a 43 6f 6e 74 65 6e 74 2d 54 79 70 3a 20 74.내용 유형: t0020 65 78 74 2f 68 74 6d 6c 0a 43 61 63 68 2d 확장/확장 ..캐시-0030 43 6f 6e 74 72 6f 6c 3a 20 6e 6d 63 63 68 제어: 캐치 없음
- 페이지가 MIME "charset = ISO-8859-1"을 사용하는 사용자 지정 JSON을 포함하는 유형인 경우
0000 48 54 50 2f 31 2e 31 20 32 30 30 4f 4b 0d HTTP/1.1 200 OK. 0010 0a 43 61 68 65 2d 43 6f 6e 74 72 6f 6c 3a 20.Cache-C 온트롤:0020 6e 6f 2d 63 63 68 65 0d 43 6f 6e 74 65 6e 캐시 없음..콘텐0030 74 2d 54 79 70 65 3a 20 74 65 78 74 2f 68 74 6d t-Type: 텍스트/htm0040 6c 3b 20 63 68 61 72 65 74 3d 49 53 4f 2d 38 l; chars et=ISO-80050 38 35 39 2d 31 0d 0a 43 6f 6e 65 63 74 69 6f 859-1..접속
왜 그럴까? JSON 페이지에 다음과 같은 목표를 넣을 수 없기 때문이다.
내 경우 Connect Me 9210 Digi 제조업체를 사용합니다.
- 비표준 MIME(p-> the CgiPtr-> = fDataType eRpDataTypeOther)를 사용하는 것을 나타내기 위해 플래그를 사용해야 했습니다.
- 변수 strcpy(p-> the CgiPtr-> fOtherMimeType, "text / html; charset = ISO-8859-1 ")에 새로운 MIME이 추가되었습니다.
JSON에 의해 전달된 데이터를 UTF-8로 변환한 후 페이지에서 변환을 다시 할 필요 없이 작동했습니다.
사용하다encodeURI()
클라이언트 JS 및 사용URLDecoder.decode()
동작합니다.
예:
Javascript:
$.getJSON( url, { "user": encodeURI(JSON.stringify(user)) }, onSuccess );
자바:
java.net.URLDecoder.decode(params.user, "UTF-8");
$.getJSON()을 사용하는 경우 콜 전에 다음 항목을 추가할 수 있습니다.
$.ajaxSetup({
scriptCharset: "utf-8",
contentType: "application/json; charset=utf-8"
});
utf-8 문자를 다시 얻으려면 이 기능을 사용합니다.
function decode_utf8(s) {
return decodeURIComponent(escape(s));
}
예: var new_Str=var_utf8(str);
언급URL : https://stackoverflow.com/questions/26620/how-to-set-encoding-in-getjson-jquery
'it-source' 카테고리의 다른 글
반응의 onClick 핸들러를 사용하여 href "새 탭에서 열기" 유지 (0) | 2023.03.22 |
---|---|
깊이를 알 수 없는 복잡한 사전을 완전히 탐색하려면 어떻게 해야 합니까? (0) | 2023.03.22 |
visualvm 및 JMX를 사용한 리모트 감시 (0) | 2023.03.17 |
Angular를 연장하는 권장 방법은 무엇입니까?JS 컨트롤러? (0) | 2023.03.17 |
React.js 구성 요소 확장 (0) | 2023.03.17 |