이번에는 jquery.ajax에 URL이 전달될 때 한자가 깨졌을 때 처리하는 방법을 보여 드리겠습니다. 주의사항은 무엇인가요?
JQuery
JQuery의 기본 contentType: application/x-www-form-urlencoded
이것이 JQuery가 왜곡되는 이유입니다. 문자 집합을 지정하지 않으면 ISO-8859-1
이 사용됩니다. ISO8859-1, 일반적으로 Latin-1이라고 합니다. Latin-1에는 모든 서유럽 언어를 작성하는 데 필수적인 추가 문자가 포함되어 있습니다. JQuery의 Ajax는 국제화 문제를 전혀 고려하지 않고 유럽 문자 집합을 사용했기 때문에 중국어 전송 시 문자가 깨져버리는 문제가 발생했습니다. 그리고 UTF-8은 이 문제를 해결할 수 있습니다. 궁극적으로는 JQuery 코드를 수정하고 contentType이 utf-8 문자 집합을 사용함을 명시적으로 선언해야 GB2312 중국어 전송 문제를 해결할 수 있다는 의미입니다.1. JQuery 코드 수정
JQuery 코드를 수정하고 charset=UTF-8만 추가하면 됩니다. 이렇게 하면 페이지의 web.config나 인코딩을 변경할 필요가 없습니다. , 서버 측에서 디코딩하기 위해 escapc(str)을 사용할 필요가 없습니다. 영어로 전달되는 방식은 중국어로도 전달됩니다. 사용된 jquery 파일 수정: jquery-1.4.4.min.jsajaxSettings: {url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded ;charset=UTF-8 ",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest}
2. Js 코드:
function confirmcommit(){ var wlCompany = $("#wlCompany").val();//这里含有中文 var wlId = $("#wlId").val(); var proposer = $("#proposer").val(); if(confirm("确认要换货吗")){ $.ajax({ type:'POST', url:'${pageContext.request.contextPath}/returnGoods/confrimExchangeGoods.do', data:'wlCompany='+wlCompany+'&wlId='+wlId+'&proposer='+proposer, //直接传值 dataType:'text', error:function(){ alert("JQuery AJAX Error!"); }, success:function(msg){ alert(msg); return; if(msg=='换货成功'){ document.location="${pageContext.request.contextPath}/orderItem/queryProduceItem.do?orderBusType="+${orderBusType}; } } }); } }
public ActionForward confrimExchangeGoods(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { log.info("确认换货 confrimExchangeGoods start..............."); response.setCharacterEncoding("UTF-8"); //这里要设置一下 String wlCompany = request.getParameter("wlCompany"); String wlId = request.getParameter("wlId"); String proposer = request.getParameter("proposer"); .....}
iframe에서 문서 객체를 얻는 단계에 대한 자세한 설명
위 내용은 jquery.ajax에 전달된 URL에 표시되는 왜곡된 중국어 문자를 처리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!