|
|
게시됨 2015. 12. 23. 오후 5:50:05
|
|
|

- var regid = $('#oregion').combobox('getValue');
- //var sname = $('#sname').val();
- var sname = encodeURI($('#sname').val(),"UTF-8");
- if(regid!=""&®id!='undefined'){
- $.ajax({
- async: true,
- type : "POST",
- dataType : "json",
- url : "<%=request.getContextPath() %>/secretary/isHasUser.do?regid="+regid+"&sname="+sname,
- success : function(data) {
- if(data.mes!=""&&data.mes!=null){
- $.messager.alert('Warning',data.mes);
- return false;
- }
- }
- });
- }
- }
코드 복사 위 코드는 FF/Chrome에서는 보통 중국어로 전달할 수 있지만, IE에서는 문제가 발생해 배경 정보 출력이 엉성해집니다.
문제 시도:
1. 집합 내용 유형: "텍스트/평문; charset=utf-8"이라면 문제가 계속됩니다
2. ajax 코드가 있는 JSP 페이지를 다시 확인했는데, 모두 UTF-8을 사용하지만 문제는 계속됩니다
3. 백그라운드의 자바 코드에서 UTF-8, GBK, GB2312의 인코딩 변환이 강제로 이루어지며, 문제가 계속됩니다
분석 결과, 브라우저나 JQuery에서 콘텐츠 전송과 관련이 있을 수 있으나 현재로서는 정확히 판단할 수 없습니다.
해결책:
이전 단락: encodeURI($(dom).val(), "UTF-8"); encodeURI로 인코딩
백엔드 자바 코드:
URLDecoder.decode(inputStr, "UTF-8"): 백엔드 코드는 앞 구간에서 전달된 문자열을 디코딩합니다.
요약:
마지막으로, Ajax Post 요청으로 전달된 문자열 정보는 정상적으로 표시할 수 있고, 중국어 메시지도 정상적으로 표시할 수 있습니다.
|
이전의:js에서 encodeURI와 encodeURIComponent 메서드의 차이점다음:C#은 정규 표현식을 사용해 전화번호, 휴대폰 번호, ID 번호를 검증합니다
|