tomcat版本升级带来的编码问题

tomcat版本升级带来的编码问题

前几天在定位一个中文乱码的问题,尝试使用了几种方式,包括设置tomcat server.xml中的属性URIEncoding为UTF-8、在项目web.xml文件中使用Spring的CharacterEncodingFilter设置属性encoding为UTF-8作为整个项目的filter,甚至查看了Linux的环境变量(UTF-8)编码,也无济于事,这个问题怪异的地方在于:这个搜索接口的中文字符的编解码方式代码已经很久没有动过了,按道理来说不应该会出现问题,生产环境中中文搜索也没有出现问题,偏偏在测试环境出现了中文乱码的问题,一时之间毫无思路。

查看代码时发现如下的代码片段:

String word = request.getParameter("keyword");//keyword=中文
String keyword = new String(word.getBytes("ISO-8859-1"),"UTF-8");

调试发现keyword的值为 ?? ,很明显是因为编码不对导致乱码,断点调试发现变量word值已为”中文”,根本不需要再做编码转换,当然,要解决当前环境的乱码问题已经很简单了,就是直接去掉不需要的编码转换逻辑即可,但是考虑到生产环境中这种逻辑是没有问题的,中文字符并没有出现乱码的情况,一时之间不敢乱改,后来咨询了组内的同事,他们建议再观察下,可以加上一个开关来控制是否需要做编码转换,虽然这种方式有点挫,但是当时考虑到版本快要上线了,时间紧急,实

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值