回 帖 发 新 帖 刷新版面

主题:传送时出现的中文乱码问题。。求助!

showParameter.jsp代码如下:
<%@ page contentType="text/html;chareset=GBK" language="java" import="java.util.Enumeration" errorPage="error.jsp" %>

<%
String name=request.getParameter("name");
name=new String(name.getBytes("ISO8859_1"),"GBK");
out.print("<br>姓名:"+name);
out.print("<br>年龄:"+request.getParameter("age"));

String interest=request.getParameter("interest");
interest=new String(interest.getBytes("ISO8859_1"),"GBK");
out.print("<br>兴趣:");
out.print(interest);
%>
====================
明明在pageContentType里定义好了,而且获得相关参数信息后将中文字符进行了代码转换,但是提交form后,却出现:
&ETH;&Otilde;&Atilde;&ucirc;&pound;&ordm;&Ntilde;&icirc;&Eacute;&ordm;
&Auml;ê&Aacute;&auml;&pound;&ordm;22
&ETH;&Euml;&Egrave;¤&pound;&ordm;&iquest;&acute;&micro;&ccedil;&Oacute;°
乱码问题。

8858~
先谢过!!

回复列表 (共14个回复)

沙发

<%@ page contentType="text/html;chareset=gb2312" .............
                                            |
                                            |
                                           用这个试试
<%
request.setCharacterEncoding("gb2312");------------->加了这行应该就行了
String name=request.getParameter("name");
out.print("<br>姓名:"+name);
...............
%>

板凳

谢谢。
我照着做了之后的结果是传送过来的参数值变成了一系列“??”
而姓名、年龄、兴趣输出仍然是乱码><
再请教!

3 楼

name=new String(name.getBytes("ISO8859_1"),"GBK");
interest=new String(interest.getBytes("ISO8859_1"),"GBK");
这两行不要了,你是不是没去这两行啊?

4 楼

现在问题又变成原来一样了.....
WEB.XML文件里也是设置了支持中文显示的阿

5 楼

还有一招能用的,你拿所有的charset都改成iso8859-1,-中杠-阿---,不是8859_1,request.setCharacterEncoding("iso8859-1"),然后出乱码,然后右键-〉编码--〉简体中文

只要别处问号就好办

6 楼

谢谢,现在是可以了呵
发现把所有的charset都设置成gb2312再照你的方法做,也能正常显示成中文出来
这就有点让人弄不明白了

Anyway,THX a lot!

7 楼

新建一个页面trans.jsp代码:
<%@ page import="java.io.*"%>
<%! String trans(String chi)
{
               String result = "";
               byte temp [];
               try
               {
                       temp=chi.getBytes("iso-8859-1");
                      result = new String(temp);
                }
                catch(UnsupportedEncodingException e)
                {
                        System.out.println (e.toString());
                }
            return result;
}
%>
然后在你原来的页面中引用这个jsp页面,方法
<%@ include file="trans.jsp"%>
然后
<%
String name = trans(request.getParameter("name"));
%>

8 楼

是你转换新字符的时候出现的错误,应该写成ISO8859—1,而不是ISO8859_1

9 楼

是的应该写成ISO8859_1

10 楼

我完全是按照你们说的做的,为什么我的页面显示的还是乱码.

我来回复

您尚未登录,请登录后再回复。点此登录或注册