问下Jsp 编码问题

chan10 2009-07-09 08:34:02
在jsp传递参数过程中,最后获得的中文字符总是乱码,
问该如何解决啊。
示例中是index1.jsp的输入数据,传递到index2.jsp时,将出现中文乱码。

index1.jsp

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

<html>
<head>
<title>POS</title>
</head>
<body>
<form name="frm1">
<input type="input" name="sss" value="" />
<input type="button" value="submit" onclick="confirm();" />
</form>
</body>
</html>
<script language="javascript">
function confirm()
{
var value = document.frm1.sss.value;
alert("-----------" + value);
var url="index2.jsp?val="+value;
document.location.href=url;
}
</script>



index2.jsp

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

<html>
<head>
<title>POS2</title>
</head>
<body>
Value---<%=request.getParameter("val")%>
</body>
</html>


...全文
58 43 打赏 收藏 转发到动态 举报
写回复
用AI写文章
43 条回复
切换为时间正序
请发表友善的回复…
发表回复
chan10 2009-07-17
  • 打赏
  • 举报
回复
[Quote=引用 38 楼 Angel_He 的回复:]
haha
xin shou ?
[/Quote]
正解,我纯菜鸟~
litianxia123 2009-07-17
  • 打赏
  • 举报
回复
在前面加入以下 代码 就行了
<%
request.setCharacterEncoding("GBK");
response.setCharacterEncoding("GBK");
%>
sally-wang 2009-07-17
  • 打赏
  • 举报
回复
路过,学习学习
lipenggege 2009-07-17
  • 打赏
  • 举报
回复
[Quote=引用 34 楼 sphsyv 的回复:]
<%@ page contentType="text/html; charset=GB2312" pageEncoding="gb2312"%>

<html>
    <head>
        <title>POS2 </title>
    </head>
    <body>
                <%request.setCharactorEncoding("gb2312");%>
        Value--- <%=request.getParameter("val")%>
    </body>
</html>

[/Quote]

就这样就行了~~
iamhost 2009-07-17
  • 打赏
  • 举报
回复
顶一下....
chan10 2009-07-16
  • 打赏
  • 举报
回复
request.setCharacterEncoding("gb2312")

上面的方法果然有用。
但是我在jsp页面的一开始就已经设定
<%@ page contentType="text/html; charset=GB2312" pageEncoding="gb2312"%>

那这句话是干什么的呢,不是编码格式吗?
Angel 2009-07-16
  • 打赏
  • 举报
回复
haha
xin shou ?
  • 打赏
  • 举报
回复
楼主这种方式传送属于get方法传数据,a.jsp中必须对url进行两次encode(url);encode(url);
然后再b.jsp中对=request.getParameter("val")进行decode.decode代码如下:

//这里需要进行异常控制,就不一一描述了
java.net.URLDecoder.decode(request.getParameter("val"),"gbk");
chan10 2009-07-15
  • 打赏
  • 举报
回复
有能帮解决下的吗?
dw_2009 2009-07-15
  • 打赏
  • 举报
回复
加一行代码试试:
request.setCharacterEncoding("gbk"); 加在打印方法之前
sphsyv 2009-07-15
  • 打赏
  • 举报
回复
<%@ page contentType="text/html; charset=GB2312" pageEncoding="gb2312"%>

<html>
<head>
<title>POS2</title>
</head>
<body>
<%request.setCharactorEncoding("gb2312");%>
Value---<%=request.getParameter("val")%>
</body>
</html>
蔷薇之恋 2009-07-15
  • 打赏
  • 举报
回复
大多数的网页编码采用UTF-8格式
提交请求前加上response.setCharacterEncoding("GBK");
如果不是采用POST提交的方式,如连接传值方式,Tomcat 的内不会将其转换为ISO-8859-1
所以要转换可用String str= new String(request.getParameter("XXX").getBytes("ISO-8859-1"),"GBK");
有机会可以试试!!!
poppybrave 2009-07-15
  • 打赏
  • 举报
回复
加上这样一句,<%request.setCharacterEncoding("gb2312");%>...
浴火_凤凰 2009-07-15
  • 打赏
  • 举报
回复
建议以后都用UTF-8,此编码比较通用。
kk88183080 2009-07-15
  • 打赏
  • 举报
回复
大哥这个问题很好解决的,,,
* 乱码处理情况一:(提交中文):
* 方法1,页面端发出的数据作一次encodeURI,服务器段使用new String(old.getBytes("iso8859-1"),"UTF-8");
* 方法2,页面端发出的数据作两次encodeURI,服务器段使用URLDecoder.decode(old,"UTF-8")
* 乱码处理情况一:(返回中文)
* 在servlet,action中设置流编码:response.setCharacterEncoding("GBK");
chan10 2009-07-13
  • 打赏
  • 举报
回复
大家怎么都在说Tomcat中的问题啊 ~
我想问的是在weblogic下的发布,乱码问题。
在Tomcat中的修改server.xml的方法已经可行了,
那么在weblogic中,做如何修改呢?
~晕~
南方孤雁 2009-07-12
  • 打赏
  • 举报
回复
学习!
QQ359120087 2009-07-12
  • 打赏
  • 举报
回复
method = post 怎么会乱码
Wwushuang 2009-07-12
  • 打赏
  • 举报
回复
我的也出现表单提交汉字内容乱码 但是网页上的汉字就没有问题 我用的都是UTF-8编码呀
tomcat也改成是UTF-8了呀 不知道为什么 试了加上request.setCharacterEncoding("UTF-8");
还是不行 不知道为什么
蝈蝈老师 2009-07-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 hejinhui1314 的回复:]
你这种是采用Get提交的方式,服务器就会默认的是服务器内部的ISO-8859-1的编码,所以JavaScript传递中文出现乱码的问题根本上就是服务器提交时候Get方法和Post方法的不同,所以就导致了乱码的出现。具体的解决办法是:
1)打开tomcat的server.xml文件,找到区块,加入如下一行URIEncoding="GBK",具体的代码如下:
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false"…
[/Quote]


支持上面的说法,这个是一劳永逸的方法,能解决当前应用中所有使用GET提交的乱码问题,GET提交包括在表单中指定、URL后挂参,还有就是脚本提交。
加载更多回复(23)

81,092

社区成员

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

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