jquery를 사용하여 html5 애플리케이션을 처리할 때 Firefox에서 테스트하면 정상이었습니다. 사용자가 패드를 사용하여 액세스하면 문자가 깨져 있다고 합니다.
제가 직접 테스트해 보니 확실히 이 문제가 아래에 존재하는 것으로 나타났습니다. 이 문제의 경우 페이지 속성이 utf-8로 설정되면 Firefox만 charset=utf-8 헤더 파일을 전달합니다.
Chrome과 IE는 지정되지 않으므로 잘못된 문자가 나타납니다
. 해결책:
$.ajaxSetup({
contentType: "application/x-www -form-urlencoded; charset=utf-8"
});
$.post("test.php", { 이름: "i5a6", 시간: "오후 2시 " },
function(data ){
process(data);
}, "json");
또는 사용:
$.ajax({
url:url,
유형: " POST",
데이터:데이터,
contentType: "application/x-www-form-urlencoded; charset=utf-8",
dataType: "json",
성공: 함수() {
...
}
})
첫 번째를 사용하는 것이 좋지만 실제 상황에 따라 encodeURIComponent를 사용하는 것이 좋습니다. 문자 변환
Ajax가 잘못된 데이터를 제출한 경험을 요약합니다
잘못된 코드를 방지하려면 다음 단계를 수행할 수 있습니다.
해결 방법
1. 파일 인코딩, 데이터베이스 인코딩을 포함하여 인코딩을 통일되게 유지하세요. 및 웹페이지 콘텐츠 유형 인코딩
확인
UTF-8 사용을 권장합니다. 중국어. gbk/gb2312를 사용하면 문자가 깨질 수 있습니다
2. get
대신 post를 사용하여 매개변수를 링크를 통해 전달하고 자동으로 urlEncode(인코딩) 및 각 브라우저의 인코딩 방법을 사용합니다. 다를 수 있습니다. 게시물을 사용하면 이러한 상황을 피할 수 있습니다.
3. js 프런트엔드에서 인코딩을 이스케이프하고 전송한 다음 백그라운드에서 디코딩하여 데이터를 얻습니다.
온라인으로 검색할 수 있습니다.
4. 인코딩
jquery ajax는 전송된 데이터를 인코딩하는 데 utf-8을 사용하기 때문에 IE는 전송할 때 charset=utf-8을 추가하지 않아 문자가 깨집니다(IE는 기본적으로 iso-8859-1 인코딩을 사용합니다)
$.ajaxSetup({
contentType: "application/x-www-form-urlencoded; charset=utf-8"
});