首页 > 代码库 > java web中文乱码解决方案
java web中文乱码解决方案
出现乱码情况 按HTTP请求方式可分为三种
POST,这种乱码其实最容易解决,以spring为例,设置过滤器强制转换字符编码为UTF-8即可。
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客户端则只需要调用一次。
POST上传文件
为什么把这个单独拿出来说?因为上传的请求信息包含两部分,一个是request body,也就是发送文件二进制数据的部分。另一个是属性参数,如文件名等,这些参数与GET类似,是与URL一起发送的,所以如果用传统POST方式处理,文件名乱码是解决不了的。那么在此还是要套用GET的解决方法。
java web中文乱码解决方案
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。