数据库中的中文在浏览器中显示为乱码,请问该如何解决!
如题! 问题点数:20、回复次数:8Top
1 楼TechnoFantasy((VB MVP)www.applevb.com)回复于 2002-10-17 21:19:31 得分 0
jsp文件头是否设置了encode为GBKTop
2 楼cilng(光脚跑一千米)回复于 2002-10-17 21:26:36 得分 0
文件头:<%@ page charset=gb2312%>
用的地方要用 .getBytes("ISO-8859-1");Top
3 楼TechnoFantasy((VB MVP)www.applevb.com)回复于 2002-10-17 21:44:16 得分 5
<%@ page contentType="text/html;charset=GB2312"%>Top
4 楼colorer()回复于 2002-10-17 22:09:20 得分 5
这种情况的原因很多,解决方法也有不少,下面提供几种,你根据不同的运行环境都试试,看如何。
1. 文件头是否加了<%@ page contentType="text/html;charset=gb2312"%>
2. 采用 new String((s).getBytes("iso8859-1"))方式将显示乱码的s转换正确
3. 采用 new String((s).getBytes("iso8859-1"),"GB2312")方式将显示乱码的s转换正确
4. 在3的解决方法中,你还可以在不同的汉字编码格式之间转换,包括8859-1,gb2312,GBK等,这样可以有6种方式,你都可以试试,当然有些没有用。
另外,需要注意的是选用的web服务器不一样,差别挺大的,就是同一产品的不同版本也有不同,你要根据具体运行环境来解决的。
Top
5 楼zhangjianguo(笨笨)回复于 2002-10-18 08:18:49 得分 5
針對tomcat4以上的版本中
String str=rs.getObject("field1");
str=new String(str.getBytes("iso-8859-1"),"GBK");
就可以了Top
6 楼zouwenyan(珠穆朗玛)回复于 2002-10-19 09:59:39 得分 0
我还遇到过种情况,charset 的拼写你看是是不全小写,写成Charset它就成乱码了:)Top
7 楼hotenM(南京)回复于 2002-10-19 19:52:56 得分 5
这是最简单的中文问题了
因为数据库和app(包括页面),用的编码方式不同。
数据库的中文数据必须经过以下转换
String sApp = new String(rs.getString(1).getBytes("iso-8859-1"),"gb2312")
反之
String sDB = new String(sDB.getBytes("gb2312"),"iso-8859-1")Top
8 楼zxhong(红透半边天)回复于 2002-10-20 13:26:20 得分 0
根据TOMCAT版本不同,下面的你可以试一下:
<%@ page contentType="text/html;charset=GB2312"%>
或
<%@ page contentType="text/html;charset=ISO8859_1"%>
Top




