乱码问题!

Ajworld 2003-04-04 11:31:35
我在JSP页面从数据库里面读出来的中文字符显示正常,但如果我输入中文插入一条数据时就显示乱码了,我看了一下,在SQL语句里面就已经为乱码了,请问这是什么回事,我所有的页面都是这样!
我已经加了
<%@ page session="true" contentType="text/html;charset=gb2312" %>
gbk也试过了的
...全文
86 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
teva 2003-04-04
造成这个的原因是URL编码的问题,汉字在提交到服务器过程中,编码发生了转化。
java内不是使用Unicode的,虽然理论上能够解决国际化的问题,但实际的编码过程中增加了很多复杂度。
这个在ibm 上面有很完整的论述
www.ibm.com.cn
选开发人员
回复
lvhen 2003-04-04
将字符串转化一下就可以了.
String b = “中文”
String a = new String( b.getBytes( "ISO8859-1") , "GBK");
回复
ice_dorothy 2003-04-04
加一段代码,getBytes("ISO8859_1")
String aaa = //从数据库取出的值
String display_aaa = aaa.getBytes("ISO8859_1");
display_aaa//显示在页面上的值
回复
向-西 2003-04-04
呵呵~我也遇到过
TOMCAT对中文的支持不好,改用RESIN吧:)
回复
zuanbao2000 2003-04-04
1、在网页中输出中文。
JAVA在网络传输中使用的编码是"ISO-8859-1",故在输出时需要进行转化,如:
String str="中文";
str=new String(str.getBytes("GB2312"),"8859_1");
但如果在编译程序时,使用的编码是“GB2312”,且在中文平台上运行此程序,不会出现此问题,一定要注意。
2、从参数中读取中文
这正好与在网页中输出相反如:
str=new String(str.getBytes("8859_1"),"GB2312");
3、操作DB中的中文问题
一个较简单的方法是:在“控制面扳”中,把“区域”设置为“英语(美国)”。如果还会出现乱码,还可进行如下设置:
取中文时:str=new String(str.getBytes("GB2312"));
向DB中输入中文:str=new String(str.getBytes("ISO-8859-1"));

4、在JSP中的中文解决:

在“控制面扳”中,把“区域”设置为“英语(美国)”.
在JSP页面中加入:
如果还不行正常显示,则还要进行下面的转换:
如:name=new String(name.getBytes("ISO-8859-1"),"GBK");
就不会出现中文问题了。

把<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">改为:
<%@ page contentType="text/html;charset=gb2312"%>
回复
gks_cn 2003-04-04
直接用汉字提交是web编程的忌讳。
哪种语言都不提倡
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2003-04-04 11:31
社区公告
暂无公告