[java]webwork使用get提交方式乱码的解决办法

在webwork中使用get方式提交的表单,取得的中文一般都会有乱码。post 方式 一般不会有这个问题。。。

 

这个问题搞了我一天,后来通过查找一些资料终于解决。

笔者的开发环境为webwork + velocity ,编码统一为utf-8

1.在velocity.properties 中设置utf-8

input.encoding = utf-8
output.encoding = utf-8
default.contentType=text/html; charset\=utf-8

 

2.webwork.properties中也设置编码:

webwork.i18n.encoding=UTF-8

 

3.页面中的表单设置为get方式,当提示时会是这样的字符串“%E4%B8%AD%E5%9B%BD” (中国)

  java中可以使用System.out.println(URLEncoder.encode("中国","UTF-8")) 得到这个编码 。

 

4.在需要取得表单数据的action中

      比如提交过来的表单内容为:aa.action?keyword=%E4%B8%AD%E5%9B%BD

      webwork将会自动将表单keyword 属性s et到变量 keyword 中,这时直接读取keyword将是乱码。

      应该使用 keyword = new String(keyword.getBytes("ISO-8859-1"),"utf-8"); 将其转换一下会得到正确的中文。

  

 

 

转载于:https://www.cnblogs.com/cai9911/archive/2009/04/16/1437017.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值