今天在写一个jsp的简单功能,出现一个问题,我从页面提交了数据之后,到了数据库,之后就是乱码,读取出来不管用什么 编码也是乱码,用老师的方法 ,配置encoding过滤器后还是乱码,在servlet中:
req.setCharacterEncoding("UTF-8");
resp.setCharacterEncoding("UTF-8");
这样似乎也没有用,自己的页面的编码也设置成了utf-8
<%@ page language="java" pageEncoding="UTF-8"%>
在网上找了很久,都没有找到资料:
无意中看到一句话,不知道可信不可信:
就是我们在用 request.getParameter()来获取的数据一般是iso-8859-1编码的, 如果直接用req.setCharacterEncoding("utf-8")是不行的,需要把获取到的编码,用iso-8859-1获得它得bytes[]字节数组,再用String用utf-8编码成字符串
user.setEducation(new String(req.getParameter("education").getBytes("iso-8859-1"),"utf-8"));
这样就没有错了,呵呵 ……
不知道可行性如何,在这里记录下来,好久没有用jsp写东西了……