免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3074 | 回复: 1
打印 上一主题 下一主题

从XML页面向JSP页面提交数据全乱码了,真郁闷。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-12-09 21:22 |只看该作者 |倒序浏览
至今一直没有把在JSP中出现的乱码摆平,真郁闷。

本人涉及下面的五个文件,先把各个文件的内容列出来。

======================================================================
文件 result.jsp 的内容

<%@ page contentType="text/html; charset=GBK" %>;
<%@ page language="java" %>;
<%!
public String ISO2GBK(String strvalue) {
        try{
                if(strvalue==null){
                        return null;
                }else{
                        strvalue =new String(strvalue.getBytes("ISO8859_1"),"GBK");
                        return strvalue;
                }
        }catch(Exception e){
                return null;
        }
}
%>;
<meta http-equiv="Content-Type" content="text/html; charset=GBK">;
<%
String key=request.getParameter("key");
out.print("未用ISO2GBK处理:"+key+"<br>;");
out.print("使用ISO2GBK处理:"+ISO2GBK(key));
%>;

======================================================================
文件 1.jsp 的内容

<%@ page contentType="text/html; charset=GBK" %>;
<form name="form1" method="post" action="result.jsp">;
  <input type="text" name="key">;
  <input type="submit" name="Submit" value="send">;
</form>;

======================================================================
文件 1.htm 的内容

<meta http-equiv="Content-Type" content="text/html; charset=GBK">;
<form name="form1" method="post" action="result.jsp">;
  <input type="text" name="key">;
  <input type="submit" name="Submit" value="send">;
</form>;

======================================================================
文件 1.xml 的内容

<?xml version="1.0" encoding="GBK"?>;
<?xml-stylesheet type="text/xsl" href="1.xsl"?>;
<info>;
    <Content>;this is xml Content</Content>;
</info>;

======================================================================
文件 1.xsl 的内容

<?xml version="1.0" encoding="GBK"?>;
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">;
<xsl:template match="/">;
<html>;
<head>;
<meta http-equiv="Content-Type" content="text/html; charset=GBK"/>;
</head>;
<body>;
<form method="post" action="result.jsp">;
<input name="key" type="text" />;
<input type="submit" name="Submit" value="send"/>;
</form>;
1.xml:<xsl:value-of select="info/Content"/>;
</body>;
</html>;
</xsl:template>;
</xsl:stylesheet>;


======================================================================
下面是我的操作过程(假设我的域名是www.abc.com)。

第一种情况:

用IE查看 http://www.abc.com/1.jsp ,在输入框中输入“中文”两字,提交后,页面显示:

在tomcat 4.1.29平台下的结果:
  未用ISO2GBK处理:????
  使用ISO2GBK处理:中文

在resin 3.0.3 平台下的结果:
  未用ISO2GBK处理:中文
  使用ISO2GBK处理:??



第二种情况:

用IE查看 http://www.abc.com/1.htm ,在输入框中输入“中文”两字,提交后,页面显示:

在tomcat 4.1.29平台下的结果:
  未用ISO2GBK处理:中文
  使用ISO2GBK处理:中文

在resin 3.0.3 平台下的结果:
  未用ISO2GBK处理:中文
  使用ISO2GBK处理:??



第三种情况:

用IE查看 http://www.abc.com/result.jsp?key=中文 ,页面显示:

在tomcat 4.1.29平台下的结果:
  未用ISO2GBK处理:????
  使用ISO2GBK处理:中文

在resin 3.0.3 平台下的结果:
  未用ISO2GBK处理:中文
  使用ISO2GBK处理:??



第四种情况:

用IE查看 http://www.abc.com/1.xml ,在输入框中输入“中文”两字,提交后,页面显示:

在tomcat 4.1.29平台下的结果:
  未用ISO2GBK处理:??????
  使用ISO2GBK处理:涓?枃

在resin 3.0.3 平台下的结果:
  未用ISO2GBK处理:涓?枃
  使用ISO2GBK处理:???



唉,看这上面出现的情况,我傻了。

同样的代码在不同平台下的运行结果不一样,要想写不需要改动就能跨平台运行的代码是不是很不方便呀;

第一到第三种情况虽然有乱码出现,但毕竟还有正常显示的情况,可是第四种情况却全乱了!!!


怎么样才是最根本的解决办法?本人现在最最关注第四种情况出现的乱码,怎么解决?

论坛徽章:
0
2 [报告]
发表于 2003-12-10 08:56 |只看该作者

从XML页面向JSP页面提交数据全乱码了,真郁闷。

告诉你一个一劳永逸的方法,在其中加上这么一条语句request.setCharsetEncoding("GB2312";
这条语句用在Form、SQL语句前。用了这条语句之后,就大可不必在进行什么内码转换了。
在我的测试(我只用Tomcat)中,只要加上这样一条语句,就可以解决一切中文问题(表单提交、从数据库提取数据、将数据存入数据库)。
如果不行,再帮助解决。
测试结果望告知!
注释:这里request是内建对象,可直接引用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP