今回は jquery.ajax で URL を渡す際の中国語文字化けの対処方法を紹介します。ケース、見てみましょう。
JQueryJQueryのデフォルトのcontentType: application/x-www-form-urlencoded
これが、
文字セットが指定されていない場合、ISO-8859-1が使用される理由です。 ISO8859-1、通常は Latin-1 と呼ばれます。 Latin-1 には、すべての西ヨーロッパ言語を記述するために不可欠な追加文字が含まれています。
JQueryのAjaxは国際化の問題を全く考慮しておらず、欧文文字セットを使用していたため、中国語を送信する際に文字化けの問題が発生していました。 そして、UTF-8 はこの問題を解決できます。 最終的には、JQuery コードを変更し、contentType が utf-8 文字セットを使用することを明示的に宣言する必要があることを意味します。これにより、GB2312 中国語送信の問題を解決できます。1. JQuery コードを変更します
この方法では、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 でのページアンカーの失敗に対処する方法
iframe でドキュメントオブジェクトを取得する手順の詳細な説明
以上がjquery.ajaxで渡すURLに中国語が文字化けして表示される場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。