ajax亂碼處理方式

來源:互聯網
上載者:User

亂碼問題,網上找了找,各種版本,現在發現,各種的經驗遍地開。。。

不多說,成功的方式如下:

1.設定好各處的頁面編碼,我一直都設定成了utf-8,沒見什麼異常;

2.ajax 處理方式,見源碼

$.ajax({type : "POST",contentType : "application/json",url : "ToHistoryServlet?handleFlag=add&sendPerson=" + sendPerson+ "&currentTime=" + currentTime() + "&message="+ encodeURIComponent(message) + "&recvPerson=" + recvPerson,dataType : 'json',success : function(result) {alert(result.d);}});

注意事項:a.使用POST方式;

b.中文前加encodeURIComponent(把字串編碼為URI組件);

c.本例應用了jQuery。

3.servlet接收時處理方式,見源碼

public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("UTF-8");String handleFlag = request.getParameter("handleFlag");Message msg = new Message();// handle chinese code dml@2012.8.29if (request.getParameter("message") != null) {msg.setMessage(new String(request.getParameter("message").getBytes("iso8859-1"), "UTF-8"));}msg.setRecvPerson(request.getParameter("recvPerson"));msg.setSendPerson(request.getParameter("sendPerson"));msg.setSendTime(request.getParameter("currentTime"));if (handleFlag.equals("add")) {HistoryHandle.addMessage(msg);} else if (handleFlag.equals("delete")) {HistoryHandle.deleteMessage(msg);}}

注意事項:a.設定編碼方式 request.setCharacterEncoding為utf-8;

b.js預設的編碼是iso8859-1,所以需要轉換一下

String xxxxx=new String(request.getParameter("message").getBytes("iso8859-1"), "UTF-8")

如上操作即可解決ajax亂碼問題。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.