JSP乱码解决方案 WebWork乱码解决方案

看了很多关于JSP乱码的解决办法

像这样?:
<%@ page pageEncoding="GB2312" contentType="text/html;charset=GB2312"%>

<%request.setCharacterEncoding("GB2312");%>
大概就基本上可以解决中文的显示问题了,但仅仅是输出而已(如果不想在每个页面上搞这么麻烦,也可以用一个filter来完成同样的工作)。。

但是更麻烦的乱码发生在url里。。浏览器默认对url进行ISO-8859-1编码。所以GET表单数据自然以ISO-8859-1传往JVM了。。JVM然后以Unicode进行解码,显示出来的内容当然不对。。对应的解决办法:
System.out.println("ISO-8859-1" + new String(testString.getBytes("ISO-8859-1"),"gb2312"));
System.out.println("UTF-8" + new String(testString.getBytes("UTF-8"),"gb2312"));
System.out.println("GB2312" + new String(testString.getBytes("GB2312"),"gb2312"));
System.out.println("GBK" + new String(testString.getBytes("GBK"),"gb2312"));
看一下,哪一条语句输出了正确的结果,你就会明白我刚刚讲的是什么意思了。

如果,没有哪一条输出了正确结果,对不起!请仔细检查其它的地方。
如果,你走运的话。第一条语句可以输出正确的结果,那么,你在你的.java文件中就可以用这种方法进行转换了。
以上是JSP中对传入参数乱码的一点心得。。基本上可以解决JSP乱码问题。

下面来看一看WebWork:如果你使用的是WebWork的UI Tag,那么中文问题就不是什么问题了:使webwork.properties包含:
webwork.locale = zh_CN
webwork.i18n.encoding = GB2312
这就是解决之道。

接着看一下我今天遇到的错误:
由于我觉得webwork的标签不是很灵活。。准备使用原始HTML标签。这个时候,乱码发生了。
乱搞了一通JSP乱码的问题。明白了:需要编码转换。但是,params这个interceptor是webwork定义的,用来参数绑定的。。。如否在 params拦截器执行之后再进行转换?不能。因为每一个页面传回的参数个数及domain都不一样,如果转换,那么每一个action 就都需要转换了,显然这是不合理的。。。完全废除了params的强大功能。。。。正在发愁的时候,突然找到一条解决这道:<form action="" method="post">
就是这个POST,它就可以搞定一切。。

哎,乱码终于归于平静了!

<转载请注明出自http://hi.baidu.com/jenk>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值