악센트 Ajax 인코딩 문제
-
19-09-2019 - |
문제
소스 파일은 다음과 같습니다.
header('Content-type: text/html; charset=iso8859-1');
소스 ajax (jQuery) 스크립트는 다음과 같습니다.
$(document).ready(function() {
$.ajaxSetup({
cache: false
});
$("#searchfield").keyup(function(){
$("#insert_search")
.load('ajax/searchobjects.php', {search_word: $("#searchfield").val()}, function(){
});
});
});
대상 파일 :
header('Content-type: text/html; charset=iso8859-1');
echo $_POST['search_word'];
보낸 데이터 :
é
결과는 다음과 같습니다.
é
모든 파일 :
Western (ISO Latin 1) (using TextWrangler)
재미있는 것 : 악센트가있는 MySQL에 레코드를 삽입 할 수 있습니다.
해결책
이는 e (0xc3, 0xa9)의 UTF-8 인코딩을 라틴 -1로 표시하기 때문입니다. 따라서 Search_Word는 PHP에 게시 할 때 UTF-8로 인코딩되었습니다.
이 시도,
$.ajaxSetup({
scriptCharset: "iso-8859-1",
cache: false
});
다른 팁
AJAX 호출의 기본 반환 유형이 UTF-8이기 때문입니다. 노력하다
utf8_encode($output);
Ajax 스 니펫에서. 또는 설명대로 AJAX 요청의 인코딩을 변경할 수 있습니다. 여기.
제휴하지 않습니다 StackOverflow