>웹 프론트엔드 >JS 튜토리얼 >중국어 매개변수를 전달하는 JQuery.ajax 솔루션 권장_jquery

중국어 매개변수를 전달하는 JQuery.ajax 솔루션 권장_jquery

WBOY
WBOY원래의
2016-05-16 18:09:061043검색

최근에 중국어 매개변수를 전달해야 하는 문제에 직면했습니다. 인터넷에서 검색해본 결과 여기저기 복사해서 붙여넣은 '궁극의' '해결책'은 escape(str)로 트랜스코딩한 뒤 서버에 메소드를 작성해 다시 편집하거나 System.Text.Encoding을 사용하는 것에 불과하다. 다음과 같은 방법을 앞뒤로 수행합니다.

저는 오래 전부터 Prototype 프레임워크를 사용해 왔습니다. .net-GB2312 또는 jsp-utf8에서 사용했는데 문자 인코딩 문제가 발생한 적이 없습니다. 그래서 Prototype과 JQuery 코드를 모두 다운로드하고 열어서 이유를 연구했습니다.

차이점은 JQuery의 기본 contentType: application/x-www-form-urlencoded

이고 프로토타입은 contentType: application/x-www-form-urlencoded=UTF- 8입니다. 🎜>
JQuery가 문자 집합을 지정하지 않으면 ISO-8859-1이 사용되며 일반적으로 Latin-1이라고 합니다. Latin-1에는 모든 서유럽 언어를 작성하는 데 필수적인 추가 문자가 포함되어 있습니다.

JQuery의 Ajax는 국제화 문제를 전혀 고려하지 않고 유럽 문자셋을 사용했기 때문에 중국어 전송 시 글자가 깨져버리는 문제가 발생했습니다.

저희 UTF-8은 이 문제를 해결할 수 있습니다.

결국 JQuery 코드를 수정하고 contentType이 utf-8 문자 집합을 사용한다고 명시적으로 선언해야 GB2312 중국어 전송 문제를 해결할 수 있다는 의미입니다.

JQuery 코드를 수정하고 charset=UTF-8만 추가하면 됩니다. 이렇게 하면 web.config를 변경하거나 페이지의 인코딩을 변경할 필요가 없습니다. (str) 그런 다음 서버 측에서 디코딩합니다. 영어로 전달되는 방식은 중국어로도 전달됩니다.

간단한 코드 테스트:

test.html:










AjaxTest






AjaxTest.aspx:


코드 복사 >

코드는 다음과 같습니다.
<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" %>