문제

웹 앱에서 jQuery의 $.getJSON() 메서드를 사용하여 일부 양식 필드를 제출합니다.인코딩에 문제가 있습니다.내 앱의 문자 집합은 charset=ISO-8859-1이지만이 필드는 UTF-8로 제출 된 것 같습니다.

$.getJSON 호출에 사용되는 인코딩은 어떻게 설정하나요?

도움이 되었습니까?

해결책

원하는 경우 $.ajax() 를 사용해야 할 것 같습니다.인코딩을 변경하려면 아래의 contentType 매개 변수를 참조하십시오 (successerror 콜백은 html에 <div id="success"></div><div id="error"></div>가 있다고 가정합니다). 라코 디스

실제로이 작업을 한 시간 전에해야 했어요. 우연 이네요!

다른 팁

$.getJSON()를 사용하려면 통화 전에 다음을 추가 할 수 있습니다. 라코 디스

utf-8 대신 원하는 문자 집합을 사용할 수 있습니다.

옵션은 여기 에 설명되어 있습니다.

contentType : 서버로 데이터를 보낼 때이 content-type를 사용하십시오.기본값은 application/x-www-form-urlencoded이며 대부분의 경우에 적합합니다.

scriptCharset : jsonp 또는 script dataType 및 GET 유형이있는 요청에만 해당됩니다.요청이 특정 문자 세트로 해석되도록합니다.원격 콘텐츠와 로컬 콘텐츠 간의 문자 집합 차이에만 필요합니다.

하나 또는 둘 다 필요할 수 있습니다 ...

Wireshark를 사용하여 JSON 호출을 분석해야하므로 JSON 페이지 형성에 문자 세트를 포함하는지 여부를 확인할 수 있습니다. 예를 들면 다음과 같습니다.

  • 텍스트 / html 인 경우 페이지가 단순한 경우 라코 디스
    • 페이지가 MIME가 "charset= ISO-8859-1"인 사용자 정의 JSON을 포함하는 유형 인 경우 라코 디스

      왜 그렇습니까?JSON 페이지에 다음과 같은 목표를 넣을 수 없기 때문입니다.

      제 경우에는 제조업체 Connect Me 9210 Digi를 사용합니다.

      • 비표준 MIME을 사용할 것임을 나타내는 플래그를 사용해야했습니다. p-> theCgiPtr->= fDataType eRpDataTypeOther;
      • 변수에 새 MIME를 추가했습니다. strcpy (p-> theCgiPtr-> fOtherMimeType, "text / html; charset= ISO-8859-1 ");

        나에게 효과적입니다 . JSON에서 전달한 데이터를 UTF-8로 변환 한 다음 페이지에서 다시 변환하지 않아도됩니다.

클라이언트 JS에서 encodeURI()를 사용하고 서버 Java 측 작업에서 URLDecoder.decode()를 사용하세요. <시간>

예 :

  • 자바 스크립트 :

    $.getJSON(
        url,
        {
            "user": encodeURI(JSON.stringify(user))
        },
        onSuccess
    );
    

  • 자바 :

    java.net.URLDecoder.decode(params.user, "UTF-8");

이 기능을 사용하여 utf-8 문자를 되 찾으세요 라코 디스

예 : 라코 디스

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top