在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