中文显示乱码问题,请大家帮忙解释一下...

bluemoon0001 2005-10-31 01:14:54
一、
(1)window 2000 server +Tomcat 5.0 + jdk1.4.2 运行如下代码:
<%@ page contentType="text/html; charset=gb2312"%>
<%@ page info="显示用户注册信息页"%>
<%
String username = request.getParameter("username");
String gender = request.getParameter("gender");
String interest = request.getParameter("interest");

interest = new String(interest.getBytes("ISO8859_1"),"GBK"); //(1)
gender = new String(gender.getBytes("ISO8859_1"),"GBK"); //(2)
username = new String(username.getBytes("ISO8859_1"),"GBK"); //(3)
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>

<body>
<%
//显示用户注册的信息
out.print("恭喜您注册成功!以下是您的注册信息:<p>");
out.print("用户名:"+username+"<br>");
out.print("性别:"+gender+"<br>");
out.print("兴趣:"+interest+"<br>");
%>
</body>
</html>
此时,显示正常,如下:
用户名:李小天
性别:男
兴趣:我是一名电脑爱好者

如果把上面的(1)(2)(3)注释掉,也就是不进行编码转换,则得:
用户名:?????ì?????ì
性别:??
兴趣:????????????°?????

(2)window 2000 server +resin-3.0.8 + jdk1.4.2 运行上面的代码结果与Tomcat 5.0下的结果恰恰相反:
直接运行上机的代码的结果:
用户名:??????
性别:?
兴趣:?????????
如果把上面的(1)(2)(3)注释掉,也就是不进行编码转换,则得:
用户名:李小天
性别:男
兴趣:我是一名电脑爱好者

郁闷.................................

二、
page1.jsp代码如下:
<%
String msg="我是一个jsp初学者";
%>

page2.jsp代码如下:
<%@ page contentType="text/html; charset=gb2312"%>
<%@ page import="java.util.*" %>
<%@ include file="page1.jsp" %>
<%
out.print(msg);
%>
在“window 2000 server +Tomcat 5.0 + jdk1.4.2”下运行得
????????jsp???§??
如果我不用page1.jsp,我把msg直接定义在page2.jsp中,则可以得到正确的结果。
可是上面page1.jsp和page2.jsp在“window 2000 server +resin-3.0.8 + jdk1.4.2”下面运行,就可以得到正确的结果。


狂郁闷.........................


请大家帮我解释一下,是不是我的Tomcat 5.0中的配置有问题啊,我用的是装好后默认的,
我是初学者,如果是配有问题,那应该如何配呢?

...全文
367 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
常遇道 2005-10-31
  • 打赏
  • 举报
回复
结贴吧楼主:
page1.jsp
<%@ page contentType="text/html; charset=gb2312"%>
<%

String msg="我是一个jsp初学者每天进步一点点";
%>

page2.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.util.*" errorPage="" %>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<%@ include file="page1.jsp" %>
<%
out.print(msg);
%>
bluemoon0001 2005-10-31
  • 打赏
  • 举报
回复
我也试了,可是他说我重定义,我狂晕...
zhoutang 2005-10-31
  • 打赏
  • 举报
回复
第二个问题,你把

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

放在page1.jsp应该可以解决.
zhoutang 2005-10-31
  • 打赏
  • 举报
回复

Java的编码,确实比较乱

不同的平台,结果也不同.

bluemoon0001 2005-10-31
  • 打赏
  • 举报
回复
meta编码应该如何设,你说的是<meta http-equiv="Content-Type" content="text/html; charset=gb2312">吗?
liu_you 2005-10-31
  • 打赏
  • 举报
回复
file.encoding值你看一看(out.print(System.getProperty("file.encoding"))),tomcat应该是iso8859-1,resin下应该是GBK/GB2312.
假如是这样的话,请确定,传入参数的那个页面,页面的meta编码是不是没有设置,设置成GB2312应该就可以解决问题.
bluemoon0001 2005-10-31
  • 打赏
  • 举报
回复
我也觉得奇怪,到底是怎么回事呢?
paopao270 2005-10-31
  • 打赏
  • 举报
回复
好奇怪。帮顶了
bluemoon0001 2005-10-31
  • 打赏
  • 举报
回复
to: chaucer518(喜欢凤晓的男生)

如何在page1.jsp也定义编码?

我在pages1.jsp的顶部加上<%@ page contentType="text/html; charset=gb2312"%>
报多次定义错误。
bluemoon0001 2005-10-31
  • 打赏
  • 举报
回复
原来用的就是<%@ page contentType="text/html; charset=gbk"%>
不行,我才全都改成<%@ page contentType="text/html; charset=gb2312"%>的。

难道是我昨天晚上测试的时候搞错了?!我晚上回去再试一下,如果大家不是同时熟悉两种环境的,可以说出自己在所用环境中的解决方案:

象这种情况:

page1.jsp代码如下:
<%
String msg="我是一个jsp初学者";
%>

page2.jsp代码如下:
<%@ page contentType="text/html; charset=gb2312"%>
<%@ page import="java.util.*" %>
<%@ include file="page1.jsp" %>
<%
out.print(msg);
%>

上述代码在Tomcat 5.0,大家的中文部分是否出现乱码?又是如何解决的呢?
Hao粑粑爱生活 2005-10-31
  • 打赏
  • 举报
回复
要是你在page1.jsp也定义编码格式,那应该就没问题了
福贵 2005-10-31
  • 打赏
  • 举报
回复
<%@ page contentType="text/html; charset=gb2312"%>
这一句改为:
<%@ page contentType="text/html; charset=gbk"%>
保证ok
bluemoon0001 2005-10-31
  • 打赏
  • 举报
回复
谢谢楼上三位,我在resin
request.setCharacterEncoding("gb2312"); 加不加这句,结果中文都不显示乱码,tomcat我还没有测试,因为只有我家里的机子上装了tomcat,我晚上回去一试,不过我想应该也没有问题。

楼上三位我分别把你们的分留下:
wsk_228(qing_feng):20分
viano(有心就有翼,我想我能.......):10分
OnlyFor_love(【光在哪里,荣耀就在哪里】):20分

我接着问上面的第二个问题啊,第二个问题是最让我郁闷的,还剩下50分,如果分不够,我可以重新开贴答谢,望大家帮我解决一下啊...

具体问题见上面问题中的 ( 二、)
OnlyFor_love 2005-10-31
  • 打赏
  • 举报
回复
request.setCharacterEncoding("gb2312");


在<% %>开头加上上面这一句,就可以保证该页面中字符编码格式
viano 2005-10-31
  • 打赏
  • 举报
回复
request.setCharacterEncoding("gb2312");


tomcat5.29.0 不能使用!
bluemoon0001 2005-10-31
  • 打赏
  • 举报
回复
谢谢楼上各位,现在结贴了。
bluemoon0001 2005-10-31
  • 打赏
  • 举报
回复
我已测试过了,我在page1.jsp里加上
<%@ page contentType="text/html; charset=gb2312"%>
OK了,可能是我昨天晚上搞错了^_^
wsk_228 2005-10-31
  • 打赏
  • 举报
回复
<%
request.setCharacterEncoding("gb2312");
String username = request.getParameter("username");
String gender = request.getParameter("gender");
String interest = request.getParameter("interest");
%>
bluemoon0001 2005-10-31
  • 打赏
  • 举报
回复
楼上的,你在tomcat5.0下测试通过了吗?我昨天试,它说我重定义,我晚上再回去试一下吧。

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧