急!JSP页面文字变成乱码,怎么办?!新手分少,请见谅!

HardOCP 2005-05-26 05:24:59
我用JSP+Tomcat+Oracle编制了一个网页,用IE打开http://localhost:8090/edu/index.jsp,页面上的文字都变成了"?"还有一些其他的符号,请问大家怎么解决啊!谢谢了!
...全文
437 点赞 收藏 17
写回复
17 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
storejyjs 2005-05-28
<%@ page contentType="text/html; charset=GB2312" language="Java"%>
回复
Goldrush 2005-05-27
可能是tomcat的问题,配置一下xml支持中文
回复
Goldrush 2005-05-27
回复
newsuperstar 2005-05-27
<%@ page contentType="text/html;charset=GBK"%>
回复
good_cyg 2005-05-27
加这个啊
<%@page contentType="text/html;charset=gb2312" %>
回复
guo__peng 2005-05-27
Jsp中文乱码小议
-------郭鹏
Jsp是一个很热门的话题,但让大多数人都头痛的是JSP页面中的乱码问题,笔者身有体会;曾为了解决中文乱码问题郁闷了好几天,试了很多方法都不行。最后在JSP专业人士的帮助下,终于解决。之后笔者曾对此做了一些小的研究。
首先我们先了解一下问题的原因。一般情况在在每个JSP页的头部都有这样一条语句:
<% page contentType="text/html; charset=gb2312" %>这条语句决定了此页面使用GB2312编码形式,而在数据库中一般用的是iso-8859-1字符集存储数据. 而Java程序在处理字符时默认采用统一的ISO-8859-1字符集(体现Java国际化思想),所以在添加数据时,默认的字符集编码是iso-8859-1,而页面采用的是GB2312,所以就出现乱码问题。为解决此问题应在存储的时候把GB2312换转成iso-8859-1。有此时候在读出时也会出现乱码,那么只需反过来就可以了,把iso-8859-1转换成GB2312。
具体实例归纳了以下几点,也许会对大家有一些帮助。
1、 在建立JSP页面时应该注意在jsp页面的头部加入一下代码
<% page contentType="text/html; charset=gb2312" %>
此方法是解决JSP页面显示时的乱码。
2、 有时还需在HTML代码中的<head></head>中加入这句
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
3、 在bean中用的是iso-8859-1编码,在jsp中一般用GB2312编码,处理此类乱码问题如下
String str=new String(strName.getBytes(“iso-8859-1”),”GB2312”);
具体用到此方法的地方为,当提交表单到bean(bean的功能是存储数据到数据库)表单提交后,数据库中存入的数据确变成了????,因此在调用bean之前应对编码进行转换,方法:String str=new String(request.getParameter().getBytes(“iso-8859-1”),”GB2312”);
这样,存入数据库的数据库的数据就可见了。
4、 对于页面间的参数传递也可以用这个方法来处理乱码问题:
public String getStr(String str)
{
try
{
String temp_p=str;
byte[] temp_t=temp_p.getBytes("ISO8859-1");
String temp=new String(temp_t);
return temp;
}
catch(Exception e)
{}
return "null";
}
5、 在表单定义时加上这个属性有时也可以解决表单提交过程中出现的乱码
<form enctype="multipart/form-data"></form>
6、 提交英文字符能正确显示,如果提交中文时就会出现乱码。原因:浏览器默认使用UTF-8编码方式来发送请求,而UTF-8和GB2312编码方式表示字符时不一样,这样就出现了不能识别字符。解决办法:通过request.setCharacterEncoding("gb2312")对请求进行统一编码,就实现了中文的正常显示。


回复
sylmoon 2005-05-27

<%@ page contentType="text/html; charset=gb2312" %>

<%request.setCharacterEncoding("gb2312")%>
gb2312
big5
gbk
....
回复
MARS.nEIL 2005-05-27
<%@ page contentType="text/html; charset=gb2312" %>
回复
eidolon_warrior 2005-05-27
开头加
<%@ page contentType="text/html; charset=gb2312" %>
回复
linfei486 2005-05-27
<%@ page contentType="text/html;charset=GB2312"%>
回复
HardOCP 2005-05-27
首先谢谢大家,我的页面里有<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
,但依然不行,页面上的汉字基本上都变成了“?”,Goldrush(上天有好生之德)在上面说是Tomcat的问题,需要配置一下XML支持中文,请问大家如何配置?我刚学JSP,还行大家帮帮忙!谢谢了!!!
回复
sunjie1981 2005-05-27
乱码好啊,也是一种语言啊,要是你能读懂乱码,那不就可以成为新新人类了啊,哈哈纯粹开个玩笑!!!
回复
jybbh 2005-05-27
JSP出现乱码的话,就在最前面加这个
<%@ page contentType="text/html;charset=GB2312"%>

问一下 Goldrush(上天有好生之德)
怎么配置tomcat的xml,使之支持中文??
回复
akan2005 2005-05-26
在<% %>中,加一句
request.setCharacterEncoding("gb2312");
回复
fglbee 2005-05-26

文件头添上下面几句代码试试:
<%
response.setHeader("Cache-Control", "no-cache, post-check=0, pre-check=0");
response.setHeader("Pragma", "no-cache");
response.setHeader("Expires", "Thu, 01 Dec 1970 16:00:00 GMT");

response.setContentType("text/html; charset=GBK");
request.setCharacterEncoding("GBK");

%>
回复
simonlzm 2005-05-26
把jsp文件贴上来
回复
feng198424 2005-05-26
是中文变乱码还是全变乱码了
如果是前者,找"jsp中文问题"的一些文档看看
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2005-05-26 05:24
社区公告
暂无公告