码迷,mamicode.com
首页 > 编程语言 > 详细

java web中文乱码解决方案

时间:2014-10-02 20:49:03      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:java   http   中文乱码   

出现乱码情况 按HTTP请求方式可分为三种

  1. POST,这种乱码其实最容易解决,以spring为例,设置过滤器强制转换字符编码为UTF-8即可。

  2. GET,中文字符在URL串中。

    解决方法一:在后台取参数值的时候转码

    如: String str = new String(param.getString("ISO-8859-1"),"UTF-8");

    此办法确实可行,但在客户端请求字符编码不是ISO-8859-1时,将得不到正确的中文。

    解决方法二:在发布中间件上增加URIEncoding="UTF-8"配置

    此办法的缺点是,当中间件配置环境不可控或者其他应用需要其他编码的情况下,就没辙了。

    解决方法三:客户端如JS 调用encodeURI方法将参数转码再传递。

    个人认为此为最佳方案,可以有效弥补前面两种方法体现的缺点。服务端要增加解码的部分,URLDecoder.decode(str,"UTF-8")。

    PS: JS转码要调用两次encodeURI,而Flex客户端则只需要调用一次。

  3. POST上传文件

    为什么把这个单独拿出来说?因为上传的请求信息包含两部分,一个是request body,也就是发送文件二进制数据的部分。另一个是属性参数,如文件名等,这些参数与GET类似,是与URL一起发送的,所以如果用传统POST方式处理,文件名乱码是解决不了的。那么在此还是要套用GET的解决方法。

java web中文乱码解决方案

标签:java   http   中文乱码   

原文地址:http://ccjava.blog.51cto.com/8646011/1560381

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!