在jsp的web開發中常常遇到中文亂碼問題,開發使用的的架構是SSH的,在struts端自動爲咱們封裝了變量。在咱們使用post請求時,是不會出現亂碼問題。get請求時就會出現亂碼。html
咱們一般的作法是在jsp頁面中添加<%@ page contentType="text/html; charset=UTF-8"%>,可是仍然沒有解決,咱們只能經過轉碼來解決了。web
實例:在jsp端對含有中文的變量(province=上海市,北京市)作 encodeURI(encodeURI(province))。作兩次的encodeURI服務器
服務器端咱們在 對該變量的set屬性方法中作手腳:架構
public void setProvince(String province) {
try {
province = URLDecoder.decode(province,"utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
this.province = province;
}jsp
這樣我獲得的就是正確的中文了。post
對於爲何要作兩次的encodeURI,在網上查看到是struts會自動爲咱們decode一次變量,因此咱們要在客戶端作兩次,在服務端只須要作一次解碼工做。this