java从数据库里读文件变乱码

来源:百度知道 编辑:UC知道 时间:2024/05/09 18:14:06
我用的是SQL 2005。在留言页面里有标题和内容。标题是文本框,内容就是文本域(textarea)。提交后把文本框里和文本域里的东西都放到数据库里。

提交后存在数据库里的中文是正常的。没有一点乱码,可读出来时就出问题了。标题可以正确的读出来。而读出内容时就成了乱码,像这种“H?RIQH?RIQH?RIQ”

查数据库里的中文都是正常的。而且标题显示到页面也是正常的。就是内容成了乱码。(应该就关留言页面的文本域的事,标题用文件框没事,内容用文本域就有事)

我也试过用content = new String(content.getBytes("ISO-8859-1"), "gb2312");

也还是输出类型于“H?RIQH?RIQH?RIQ”的乱码。其实也知道这样没用,因为数据库里的都是正常的。

应该如何解决??

(应该就关留言页面的文本域的事,标题用文件框没事,内容用文本域就有事)
根据你上面的话
帮你分析一下问题来源吧
1.标题文件框正常显示。(说明你的JSP编码已经为GBK或者GB2312)
2.数据库中内容正常显示。(说明你存储内容这个过程是没问题的)

所以问题就只能出现在从数据库读取内容并显示的过程中了。
我以前处理过许多Mysql各种版本的乱码问题。问题的主要原因是mysql默认编码的问题。一般修改数据库的编码,重建数据库即可,为了保险可以加上一个过滤器。做完这些就可以保证万无一失了。
sql 2005我用的不是很多,你可以查找一下它数据库编码的资料,看看是否修改过其中的编码配置。

如果你设的是防乱码是对的,记得有个专门设置只出中文的 好像是U-8 ,不是很清楚了,查查吧

改成content = new String( content.getBytes( "iso-8859-1" ) );试一下

用这个试试,request.setCharacterEncoding("GB18030");