jsp中文乱码问题解决

  在jsp的web开发中经常遇到中文乱码问题,开发使用的的架构是SSH的,在struts端自动为我们封装了变量。在我们使用post请求时,是不会出现乱码问题。get请求时就会出现乱码。

  我们通常的做法是在jsp页面中添加<%@ page contentType="text/html; charset=UTF-8"%>,但是仍然没有解决,我们只能通过转码来解决了。

  实例:在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;
 }

这样我得到的就是正确的中文了。

对于为什么要做两次的encodeURI,在网上查看到是struts会自动为我们decode一次变量,所以我们要在客户端做两次,在服务端只需要做一次解码工作。

你可能感兴趣的:(jsp中文乱码)