- 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. Set contentType:「テキスト/プレーン; charset=utf-8"の場合、問題は依然として存在します
2. AJAXコードがあるJSPページを再確認しましたが、すべてUTF-8を使用していますが、問題は解決しません
3. バックグラウンドのJavaコードでUTF-8、GBK、GB2312のエンコーディング変換が強制され、問題が解決しません
分析の結果、ブラウザやJQueryでのコンテンツ送信に関連している可能性があると判断されましたが、現時点では正確に特定できません。
解決策:
前の段落:encodeURI($(dom).val(), "UTF-8"); encodeURIでエンコード
バックエンドのJavaコード:
URLDecoder.decode(inputStr, "UTF-8"): バックエンドのコードは前方セグメントで渡された文字列を復号します。
概要:
最後に、Ajax Postリクエストで渡される文字列情報は通常通り表示でき、中国語も通常表示可能です。
|