JAVA WEB開發中處理亂碼匯總

來源:互聯網
上載者:User

  在開發中難免會遇到中文顯示亂碼的問題,亂碼問題是一個很棘手的問題,常常令程式員抓狂。現在把我使用的幾種解決亂碼的方案和大家共用!

  一、表單提交的亂碼處理

  表單提交分為GET和POST兩種提交方式。兩種方式的亂碼解決又不一樣,用POST提交只需要在接受的時候加上request.setCharacterEncoding("utf-8");而GET方法處理應該將接收過來的值打碎成ISO-8859-1編碼的,然後再組裝成UTF-8的,new String(request.getParameter(param).getBytes("iso8859-1"),"UTF-8");

  二、過濾器處理亂碼問題

  如果每次接收都像上面那樣去處理的話肯定是太麻煩了,用過濾器來處理請求的亂碼問題很方便,只需要寫一個過濾器,就可以過濾所有請求頁面的亂碼問題了。至於如何用過濾器處理亂碼請參考《用過濾器來解決JSP中文亂碼問題》。不過值得注意的是,如果使用Struts的話,在web.xml裡面處理編碼的過濾器必須在struts過濾器前面註冊,否則所有頁面都不會經過過濾器。

  三、ajax請求的亂碼問題

  如果使用ajax出現了亂碼問題這樣解決:前端ajax函數的請求的url裡面中文參數用兩個encodeURI()函數處理,var url = "user.do?p=checkUser&name=" + encodeURI(encodeURI(username.value));而伺服器端則用 URLDecoder.decode()函數去接收,string userName = URLDecoder.decode(request.getParameter("name"),"utf-8");   這樣就能夠解決ajax請求中亂碼的問題了。

  四、連結請求中亂碼問題(IE6)

  使用連結請求傳遞中文參數時在IE6裡面會出現亂碼,解決方案如下:使用encodeURI(param)對中文參數處理一下就行了,如location = "users.do?p=login&&username="+encodeURI(username)+"&password="+encodeURI(password);

  待續.........

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.