struts关于乱码奇怪问题
我在一个jsp页面中顶部加了如下语句:
<%@page contentType="text/html;charset=gb2312"%>//向客户端输出为gb2312的字节流
<%@page pageEncoding="gb2312"%>//jspc可以正确解析当前页面中的中文字符
<% request.setCharacterEncoding="gb2312'%>//正确接收客户端的参数
但是为什么上面的情况都做了,还是出现了乱码呢?(网上有很多这样的文章,都详细的解释了其出现乱码的原因及解决的方法,我认为都没有漏桶了,但结果还 ……,郁闷!)
我在initial.jsp页面中的一text输入中文字符,然后交Action处理后,再把结果返回到initial.jsp中,但是返回到initial.jsp后,连在text中输入的中文字符也变成了?????了,更不用说返回的结果了,经过测试,把Action收到的参数System.out.println()后出来的就是乱码。
我都不知道到底是什么原因了,我用的是weblogic,请高手指点
问题点数:40、回复次数:7Top
1 楼Paripatetic(逍遥)回复于 2006-03-28 22:59:36 得分 4
new String(str.getBytes("iso-8859-1"),"gb2312");Top
2 楼fangshao(方少)回复于 2006-03-28 23:06:39 得分 4
public static String DustTOChin(String dust) throws IOException
{
String chin="";
chin=new String(dust.getBytes("iso8859-1"),"gb2312");
return chin;
}
dust乱码 返回chin 正常 你试试看Top
3 楼maidongdong()回复于 2006-03-29 23:44:50 得分 0
其实我想问的是:为什么我防漏的措施都做到了,还是出现了乱码,还有什么漏?
至于楼上两位兄弟的方法也许可以实现,但是要是每一个都这么做,是不是但是太烦了,事实上处理的确实不止这么一个。
我还是想知道我的方法为什么不对,应为我还是认为不应该不对的,但事实上是出现了乱码。Top
4 楼allenjay2003(你应当了解真相,真相会使你自由)回复于 2006-03-30 00:43:31 得分 10
不知道LZ是否用了ActionForm
如果使用了表单填充,应该在ActionForm里首先对参数字符化
Action里直接用即可Top
5 楼QWERT520(痛苦并快乐着)回复于 2006-03-30 10:07:50 得分 10
http://www.javaresearch.org/article/showarticle.jsp?column=106&thread=19240
Top
6 楼MagicianLiu(魔术师·刘)回复于 2006-03-30 10:22:17 得分 6
需要做一个设置编码的过滤器。。在过滤器里设置request.getCharacterEncoding="gb2312"就可以解决Struct中的乱码了。
还有Form提交时提交方法一定是POST。GET方法也会出现乱码,设置过滤器也没用Top
7 楼AFer198215(甜咖啡)回复于 2006-03-30 10:22:50 得分 6
简单说:JSP使用ISO8859-1编码传参数,就算你把JSP里所有的编码都设了也没用。
最好解决方法就是,过滤器Top




