>  기사  >  웹 프론트엔드  >  .ashx files_jquery에 게시된 중국어 왜곡 문자 문제에 대한 jquery 솔루션

.ashx files_jquery에 게시된 중국어 왜곡 문자 문제에 대한 jquery 솔루션

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

1. 내 환경: SP1 패치가 없는 vs2005에서는 웹 응용 프로그램을 만들 수 없으며 jquery 버전 1.5.1

2. web.config의 관련 구성



3. jquery의 Post 데이터 작성 방법

코드 복사 코드는 다음과 같습니다.

$(document).ready(function (){
$("#btnSend").click(function(){
$ .ajax( {
유형: "POST",
url: "PrecisionAHandle.ashx",
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
데이터: { "StudentId": $("#LblStudentId").attr("innerText"),"StudentName": $("#LblStudentName").attr("innerText"),"StudentAge": $("#txtStudentAge "). attr("value")},
success: function(html){
$("#TabContainer").html(html);
}
});
});

여기서 StudentName은 중국어입니다.

4. .ashx 파일에서 매개변수를 받는 방법

string strStudentName = context. ["StudentName"];
참고: contentType: "application/x-www-form-urlencoded; charset=UTF-8"이 없으면 context.Request.Params["StudentName"]이 깨집니다.
.ashx에서 context.Request.ContentEncoding을 추적하면 jquery가 게시한 데이터가 gb2312 인코딩을 사용하는 것을 알 수 있습니다. 아마도 context.Request는 데이터 수신 시 기본적으로 디코딩에 utf-8을 사용하지만 jquery는 utf-8을 사용하는 것 같습니다. Post 데이터의 데이터를 디코딩하기 위해 utf-8이 사용되지 않아 .ashx의 context.Request.Params["StudentName"]이 잘못된 문자로 표시되었습니다.
이상한 현상:
현상 1: contentType을 추가하지 않고: "application/x-www-form-urlencoded; charset=UTF-8", .ashx 파일에서 다음을 사용하면 명령문이 문자열을 올바르게 표시할 수 있습니다.

코드 복사 코드는 다음과 같습니다.
StreamReader steamRd = new StreamReader(HttpContext. Current.Request.InputStream);
string strPostData = steamRd .ReadToEnd();
strPostData =HttpUtility.UrlDecode(strPostData, Encoding.GetEncoding("utf-8"))

현상 2: web.config에서 해당 구성을

으로 변경한 후, 추가 여부에 관계없이 contentType: " application/x-www-form-urlencoded; charset=UTF-8", 백그라운드에서 .ashx 파일이 수신한 매개변수가 여전히 왜곡되어 있습니다. web.config를 수정한 후 웹 사이트가 매우 느리게 컴파일되고 매우 느리게 실행됩니다.

참고기사 :

http://www.jb51.net/article/26658.htm
http://www.jb51.net/article /26659.htm
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.