关于jsp页面的中文乱码问题,求解!

yeah920 2004-09-07 02:26:45
已经使用了大家所说的方法:


jsp页面的代码:

1)
<%@ page language="java" contentType="text/html; charset=GB2312" pageEncoding="gb2312" %>
<META http-equiv="Content-Type" content="text/html;charset=GB2312">

标题:<input type=text name=title value=''>

这个时候,页面上的默认使用的字符集是“简体中文(gb2312)”;但是,“标题”这2个字,显示的还是问号(???)。为什么?

2)
<%@ page language="java" contentType="text/html; GB2312" %>
<META http-equiv="Content-Type" content="text/html;charset=GB2312">

标题:<input type=text name=title value=''>

这个时候,页面上的默认使用的字符集是“西文(ISO)”,“标题”这2个字,显示的也是问号(???)。但是,如果把页面上的字符集改为“简体中文(GB2312)”就可以显示为中文。为什么?
如果这样的话,每次看这个页面时都要手动改一次显示字符集。


页面上,静态的 中文 显示出来的居然是乱码!
我试了很多办法了。
都没得解决。
<font color=red>test</font>
...全文
152 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
fuzuyuan 2004-09-07
你将我下面的两个网页拿去做实验,记住,不要改变任何东西
index.jsp
-----------------
<%@ page language="java" contentType="text/html; charset=GB2312" pageEncoding="gb2312" %>
<html>
<head>
<title>登录页面</title>
<META http-equiv="Content-Type" content="text/html;charset=GB2312">
</head>

<body>
<form name="form1" method="post" action="">
<input type="text" name="textfield">
<input type="submit" name="Submit" value="Submit">
实验
</form>
</body>
</html>

------------
test.jsp
---------------
<%@ include file="index.jsp"%>


然后在地址栏中输入
http://127.0.0.1:8080/text.jsp
如果还有乱马,肯定是你的服务器的问题
回复
wangwei8117 2004-09-07
用上面的方法试试吧,我也用过这种方法的!
回复
tangbow 2004-09-07
1.s=new String(s.getBytes(),"iso-8859-1");
2.s=new String(s.getBytes(),"gb2312");
3.s=new String(s.getBytes("iso-8859-1"),"gb2312");
4.s=new String(s.getBytes("gb2312"),"iso-8859-1");
5.s=new String(s.getBytes("iso-8859-1"));
6.s=new String(s.getBytes("gb2312"));


尝试以上的方法之一!
回复
yeah920 2004-09-07
谢谢大家。问题还没解决~:)

fuzuyuan(happyboy)

我的a.jsp里有了<%@ page contentType=""%>这些语句,在b.jsp里就只有<%@ include file = "/a.jsp" %>了,没有其他的语句了。

应该不是tomcat的问题,因为,当那2句语句单独在一个jsp页面里时,就可以正常显示中文了。

现在我的问题可能是:
include的问题了。

在a.jsp里的头部:
<%@ page language="java" contentType="text/html; charset=GB2312" pageEncoding="gb2312" %>
<META http-equiv="Content-Type" content="text/html;charset=GB2312">

在b.jsp里的头部:<%@ include file = "/a.jsp" %>
并且,b.jsp里没有任何指定字符集的语句了。

这样,b.jsp里的中文(是静态的中文)都是显示不正常的。好郁闷。
回复
fuzuyuan 2004-09-07
关于在另一个页面中加入前一个页面,我也试过了,运行很正常,但是你要确定,你的的第二个页面中不应该在有<%@ page contentType=""%>因为包含的页面已经有了这个指令了,重复的输入会报错的,
我估计还是和你的版本有关系
回复
fuzuyuan 2004-09-07
1,可能你的系统或ie有问题
2,你用的tomcat的版本太低了,以至于基本的字符转换都没办法完成

下面我是用tomcat5.0和jdk1.42做的,如果你不是这样的版本,建议你去下载,如果下载后运行下面的程序还是有你那样的问题,建议你整理系统
下面是程序:

<%@ page language="java" contentType="text/html; charset=GB2312" pageEncoding="gb2312" %>
<html>
<head>
<title>登录页面</title>
<META http-equiv="Content-Type" content="text/html;charset=GB2312">
</head>

<body>
标题:<input type=text name=title value=''>
</body>
</html>
回复
ryscore 2004-09-07
include发生在编译期,也就是已经开始编译后了你才指定编码方式,当然不行了
回复
yeah920 2004-09-07
试过了,还是不行。

其实,我的
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="gb2312" %>
<META http-equiv="Content-Type" content="text/html;charset=GBK">
这2句话是在a.jsp里,
但是,我在b.jsp里include了a.jsp啊。

为什么这样不行的啊??

当我把这2句话放在b.jsp里时,就正常显示了。

难道,不能放在一个统一的文件了,然后每个文件都引入的吗???
由于我好多javascript的代码都写在了一个叫header.jsp的文件里的,我的每个jsp文件都会include这个文件的。
但是,这样,中文乱码却解决不了.....

一定只能是,在每个的jsp页面里都必须有这2句话的吗??


ps:csdn不能用html,不爽啊,想用些颜色重点突出都不行~~~
回复
bobshi 2004-09-07


再把这个去掉试试。<META http-equiv="Content-Type" content="text/html;charset=GB2312">
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2004-09-07 02:26
社区公告
暂无公告