乱码问题总结

中文乱码解决方案总结
以前做过一阵网站开发,前台静态html,动态jsp,后台java源文件,都会出现各种各样的中文乱码问题,问题解决了就记录下来,总计给自己看,能帮到同行也是我的荣幸。
先写一下,有了更好的办法再总结,
1、pageEncoding:设置JSP源文件和响应正文中的字符集编码。
2、采用转换,str=new String(str.getBytes("iso-8859-1"),"utf-8");   
3、增加fiter, request.setCharacterEncoding("utf-8");
4、在request.getParameter("name"),之前设置request.setCharacterEncoding("utf-8");
5、在server.xml 增加uRIEncoding="UTF-8" useBodyEncodingForURI="true",其中useBodyEncodingForURI 优先级比uRIEncoding 高。
6、可以在把对象传递到页面前先处理一下链接和中文 music.setUrl(URLEncoder.encode(music.getUrl(),"utf-8")),然后在页面获取。
7、在页面里自定义fn处理: ${myfn:urlencode(music.url)}${myfn:urlencode(music.author)}
总结:
1)request.setCharacterEncoding;只对post请求、get请求(server.xml中配置useBodyEncodingForURI="true")起作用。
2)server.xml 增加uRIEncoding="UTF-8" useBodyEncodingForURI="true" 只对get请求起作用。
3)地址栏手动链接。根据系统编码gbk----iso-8859-1
4)request.setCharacterEncoding 应该设置在request.getParameter之前。
5)对server.xml只有uRIEncoding="UTF-8"配置的情况下。 会对get请求uri进行utf-8编码
6)若useBodyEncodingForURI="true" 优先级比uRIEncoding="UTF-8"高。即设置前者后,后者不起作用。
因此建议最好 jsp 中pageEncoding,contentType,server.xml  uRIEncoding="UTF-8" useBodyEncodingForURI="true"  fileter为request.setCharacterEncoding,保持一致。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值