2010-02-01 2 views
4

나는 서버에 POSTS AJAX가있는 페이지가 있으며, 종종 데이터는 유니 코드가됩니다.유니 코드로 JQuery AJAX 호출. 유니 코드 데이터를 POST하는 올바른 방법은 무엇입니까?

이것은 대부분 작동하지만 가끔씩 끊어지는 것처럼 보입니다. 어디서나 대답을 찾을 수없는 것 같습니다. 나는 encodeURI를 사용하고 있지만 정확한지 확실하지 않습니다.

$.ajax({ 
     type: "POST", 
     url: "SomePage.php", 
     data: "val1=" + encodeURI(unicodeVariable) + "&presentation=" + encodeURI(someUnicodeVariable), 
     success: function(msg){ 

     } 
    });      

내가 무슨 일이 일어나고 있는지 추측하고있어 유니 코드 문자를 깨고 &을 포함 때때로 :

다음은 코드의 예입니다.

JQuery를 사용하여 AJAX 호출을 위해 유니 코드를 인코딩하는 올바른 방법은 무엇입니까?

감사합니다.

답변

6

다음은 모든 인코딩 방법을 비교하는 좋은 link입니다. URI의 단일 성분을 인코딩 할 때

마지막은 에 encodeURIComponent() 방법은 대부분 사용되어야한다. 이 메서드는 문자를 인코딩하여 은 URI의 특수 문자로 인식되므로 많은 구성 요소가 이 될 수 있습니다. 이 메서드는 이 '문자를 인코딩하지 않습니다. URI 내에 유효한 문자가 있으므로 유의하십시오.

data: { 
    val1: unicodeVariable, 
    presentation: someUnicodeVariable 
} 

: 객체에

data: "val1=" + encodeURI(unicodeVariable) + "&presentation=" + encodeURI(someUnicodeVariable), 

: 당신은 그냥이 줄을 변환 할 수 있습니다

encodeURI("&"); // "&" 
encodeURIComponent("&"); // "%26" 

또는 :

에 encodeURIComponent()는 또한 "&"기호를 인코딩 그리고 jQuery는 자동으로 encodeURIComponent()를 사용하여 데이터가 인코딩됩니다.

+0

개체로 변경하고 인코딩이 UTF-8로 설정되었는지 확인하는 것이 트릭을 만들었습니다. 이제 mdash 문자가 MySQL에 올바르게 저장되지 않는 이유를 알아 내면됩니다. –

+0

@RyanSmith 3 년 전만해도 이것이 실현되었다는 것을 알았지 만 그 문제를 알아 냈습니까? 나는 아주 비슷한 것을 다루고있다. – acjay

관련 문제