主题:传送时出现的中文乱码问题。。求助!
niniche
[专家分:0] 发布于 2005-07-27 10:11:00
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后,却出现:
ÐÕÃû£ºÑîɺ
ÄêÁ䣺22
ÐËȤ£º¿´µçÓ°
乱码问题。
8858~
先谢过!!
回复列表 (共14个回复)
沙发
hlnccc [专家分:250] 发布于 2005-07-27 10:55:00
<%@ page contentType="text/html;chareset=gb2312" .............
|
|
用这个试试
<%
request.setCharacterEncoding("gb2312");------------->加了这行应该就行了
String name=request.getParameter("name");
out.print("<br>姓名:"+name);
...............
%>
板凳
niniche [专家分:0] 发布于 2005-07-27 13:22:00
谢谢。
我照着做了之后的结果是传送过来的参数值变成了一系列“??”
而姓名、年龄、兴趣输出仍然是乱码><
再请教!
3 楼
hlnccc [专家分:250] 发布于 2005-07-27 14:40:00
name=new String(name.getBytes("ISO8859_1"),"GBK");
interest=new String(interest.getBytes("ISO8859_1"),"GBK");
这两行不要了,你是不是没去这两行啊?
4 楼
niniche [专家分:0] 发布于 2005-07-27 16:05:00
现在问题又变成原来一样了.....
WEB.XML文件里也是设置了支持中文显示的阿
5 楼
hlnccc [专家分:250] 发布于 2005-07-27 17:12:00
还有一招能用的,你拿所有的charset都改成iso8859-1,-中杠-阿---,不是8859_1,request.setCharacterEncoding("iso8859-1"),然后出乱码,然后右键-〉编码--〉简体中文
只要别处问号就好办
6 楼
niniche [专家分:0] 发布于 2005-07-27 18:28:00
谢谢,现在是可以了呵
发现把所有的charset都设置成gb2312再照你的方法做,也能正常显示成中文出来
这就有点让人弄不明白了
Anyway,THX a lot!
7 楼
f2001zc [专家分:30] 发布于 2005-07-27 23:43:00
新建一个页面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 楼
kingzhm [专家分:450] 发布于 2005-08-01 09:12:00
是你转换新字符的时候出现的错误,应该写成ISO8859—1,而不是ISO8859_1
9 楼
kallen [专家分:10] 发布于 2005-08-09 16:56:00
是的应该写成ISO8859_1
10 楼
fionazou [专家分:30] 发布于 2006-04-06 16:47:00
我完全是按照你们说的做的,为什么我的页面显示的还是乱码.
我来回复