2014-04-02 5 views
1

Im이 인코딩에있어 정말로 이상한 문제를 겪고 있고, 그것이 나를 미치게 만듭니다.Javascript가 자동으로 UTF를 ISO-8859로 변환합니다.

function Test(Name, callback) { 
    $.ajax({ 
     type: "POST", 
     url: "Test.php", 
     data: "Name=" + Name, 
     success: function (msg) { 
      callback(msg); 
     } 
    }); 
} 

과 test.php 파일 :

그래서이 가정 할 수 있습니다 // WWW :

function is_utf8($string) { 
    return (mb_detect_encoding($string, 'UTF-8', true) == 'UTF-8'); 
} 

    if (is_utf8($_POST["Name"])){ 
     echo "Im in UTF"; 
    } 
    else{ 
     echo "im not in UTF!!"; 
    } 

편집 -> [HTTP에서 -이 내가 뭔가를 발견 읽어 보시기 바랍니다. w3schools.com/tags/ref_urlencode.asp][http://www.w3schools.com/tags/ref_urlencode.asp] 그 문제는 인코딩을 일으키는 것을 볼 수 있습니다. "% 21"이 (가) 느낌표가됩니다. 어떻게 이런 일이 일어나지 않게 할 수 있습니까? 단순히 21 %를 전달하려는 내가 그것을 변환 할 때 PHP 그렇게 문자열 "% 21 % 문자열을 얻을에 내가 느낌표를 얻을 UTF 할 수 있습니다.

+0

가능한 중복을 사용하는 것입니다 어떻게 내가 할 수있는 URL 인코딩 된 문자열이 PHP에서 UTF-8 또는 Latin-1인지 확인 하시겠습니까?] (http://stackoverflow.com/questions/21384050/how-can-i-know-if-url-encoded-string-is-utf -8-or-latin-1-with-php) – andyb

+0

어떤 문자셋을 사용하고 싶지 않습니다 ...이 질문은 왜 변환합니까? 입력 된 문자 세트가 정확히 무엇인지 알고 있습니다. – user3370402

+0

jQuery는 _data_를 a 기본 콘텐츠 유형 "application/x-www-form-urlencoded"에 맞는 쿼리 문자열 - ['.ajax()']의 ** processData ** 참조] (https://api.jquery.co m/jQuery.ajax /). 같은 페이지에 따르면 여전히 UTF-8이어야합니다. 어쩌면'processData : false'를 설정해보십시오. 또한이 페이지의 예제는'data : {name : "John", location : "Boston"}' – andyb

답변

0

솔루션 [의

encodeURIComponent(Name) 
+1

답을 상세히 설명하고 질문의 맥락에 넣으시겠습니까? 고맙습니다. – mjhm