首頁  >  文章  >  web前端  >  jquery中文亂碼怎麼辦

jquery中文亂碼怎麼辦

coldplay.xixi
coldplay.xixi原創
2020-11-16 15:42:531939瀏覽

jquery中文亂碼的解決方法:1、將項目的編碼統一設定為【UTF-8】,將資料互動時的編碼都統一為【UTF-8】;2、如果項目的編碼已經統一設定為GBK或GB2312,則在ajax呼叫傳送中文參數到服務端時容易出現中文亂碼。

jquery中文亂碼怎麼辦

推薦:《jquery影片教學

jquery中文亂碼的解決方法:

方法1,將項目的編碼統一設定為UTF-8. 將資料互動時的編碼都統一為"UTF-8";

方法2,如果專案的編碼已經統一設定為GBK或GB2312,則在ajax呼叫向服務端傳遞中文參數時容易出現中文亂碼,這時的處理方式如下:

後台:

程式碼範例:

/* =============禁止缓存============== */
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Expires", "0");
/* =============禁止缓存============== */
response.setContentType("text/html;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
//request.setCharacterEncoding("UTF-8");
String userName = request.getParameter("userName");
userName=URLDecoder.decode(userName, "UTF-8");
             
              //在springmvc中,如没有通过request,或直接设置jquery的编码设置,则需要如下方式转换。
     // mykeyword = new String(keyword.getBytes("iso-8859-1"),"UTF-8");
              //但如果是encodeURI()函数转换,则如下就可以。注意,这时参数在 url后面。
              userName=URLDecoder.decode(userName, "UTF-8");

前台如:

程式碼範例:

var myurl="grzx/validateUserNameIsExists.do?userName="+username;
myurl=encodeURI(myurl);
myurl=encodeURI(myurl);
jQuery.ajax({
url:myurl,
type:'POST',
async:false,
data:{},
success:function(data){
    var msg=eval('('+data+')');
  //  var msg=JSON.parse(data);
      if(!msg.result){
    jQuery('#myusername').attr('value','');
         alert('用户名已存在!请用新的用户名');
      }
    }
   });

進行兩次編碼。

在前台傳遞的“哈哈大笑”,在後台編碼前為:“哈哈大笑”;就算成功了。

當然,只編碼一次也是可以的,將jquery的編碼設定為"UTF-8"; 加上;charset='UTF-8'就好了。

例如:

程式碼範例:

contentType : 'application/json;charset=UTF-8',

#相關免費學習推薦:JavaScript(影片)

以上是jquery中文亂碼怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn