当前位置: 技术问答>java相关
如何解决jsp网页中汉字乱码问题??
来源: 互联网 发布时间:2015-07-25
本文导语: 我用的环境: tomcat4.0.1 + jdk1.4,请问如何才能使得显示正常? 同样的网页我在 tomcat4.0.4 + jdk1.4中一切正常 | 为解决这个问题,可在每个JSP的页面开始处加上。不过,这还不够,虽...
我用的环境: tomcat4.0.1 + jdk1.4,请问如何才能使得显示正常?
同样的网页我在 tomcat4.0.4 + jdk1.4中一切正常
同样的网页我在 tomcat4.0.4 + jdk1.4中一切正常
|
为解决这个问题,可在每个JSP的页面开始处加上。不过,这还不够,虽然这时显示了中文,但是发现从数据库读出的字段变成了乱码。经过分析发现: 在数据库中保存的中文字符是正常的,数据库用ISO8859-1字符集存取数据,而Java程序在处理字符时默认采用统一的ISO8859-1字符集(这也体现了Java国际化思想),所以在数据添加的时候Java和数据库都是以ISO8859-1方式处理,这样不会出错。但是在读取数据的时候就出现问题了,因为数据读出也采用ISO8859-1字符集,而 JSP的文件头中有语句,这说明页面采用GB2312的字符集显示,这样就和读出的数据不一样。这时页面显示从数据库中读出的字符是乱码,解决的方法是对这些字符转码,从ISO8859-1转成GB2312,就可以正常显示了
|
一般情况下就足够
但是在从数据库中取数据或者表单提交有时候需要类似如下的方法:
哪个ISO8859-1就看你的数据库中是什么编码了。
但是在从数据库中取数据或者表单提交有时候需要类似如下的方法:
哪个ISO8859-1就看你的数据库中是什么编码了。
|
public String getStr(String str)
{
try
{
String temp_p=str;
byte[] temp_t=temp_p.getBytes("GBK");
String temp=new String (temp_t,"ISO8859_1");
return temp;
}
catch(Exception e)
{}
}
{
try
{
String temp_p=str;
byte[] temp_t=temp_p.getBytes("GBK");
String temp=new String (temp_t,"ISO8859_1");
return temp;
}
catch(Exception e)
{}
}
|
|
|
更好