jsp页面显示中文正常,写入数据库后是乱码

来源:百度知道 编辑:UC知道 时间:2024/06/02 17:07:54
我使用了JAVABEAN来读取某网页的内容,此网页编码是GB2312
并且也设置了
BufferedReader br = new BufferedReader(new InputStreamReader(uc.getInputStream(),"GBK"));

我的MYSQL是GBK编码,
在JSP页头也加上了
<%@page contentType="text/html;charset=GBK" pageEncoding="GBK" autoFlush="true"%>
request.setCharacterEncoding("GBK");
并且在连接了MYSQL后就执行了SET NAMES GBK
我在JSP中使用JAVABEAN后得到的内容显示出中文来是正常的,
同样的变量在写入进MYSQL后就是乱码。

我在MYSQL中查询
set names gbk;
select * from table;

显示出来的都是乱码

不知道该如何处理?

我也曾经遇到这个问题,不过时在sql server中,后来也不知道怎么弄就好了,你先写个过滤器试试,不行就用utf-8试试

存进数据库之前对字符串进行处理~!

request.setCharacterEncoding("GBK");
这是设置从request获取属性的编码集

你在保存的时候 应该用response,这才是设置发送给服务器端的编码集
response.setCharacterEncoding("GBK");

这样应该就好了

或者你可以在服务器端处理程序中将得到的字符串转码
String First = request.getParameter("FirstString");
String Back = new String(First.getByte("iso8859-1"),"GBK");
将Back存入数据库中

你把mysql的编码格式转换一下,同时记得把你得到的数据编码转换一下,在你取出来就不要转换了!request.setCharacterEncoding("gb2312");

str = new String(str.getByte("iso8859-1"));