java web中文乱码处理笔记
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java web中文乱码处理笔记相关的知识,希望对你有一定的参考价值。
一、发生中文乱码的情况有以下三种:
1.表单form的两种提交出现中文乱码
① get提交 ② post提交
2.超链接(本质是get提交)出现中文乱码
3、sendRedirect(发生乱码)
二、乱码产生的原因:
浏览器编码 utf-8 发送请求给服务器是会产生编码不一致的情况
所以在发送请求是先定义编码,就能很好的解决编码的问题
三、解决乱码的几种简单方式:
post方法提交:解决方案如下: request.setCharacterEncoding(“utf-8”);
get方法使用该方法的时候还是不能解决问题依然出现乱码,针对get提交所用的处理方法
封装成为一个工具类来处理:
public class Mytool{ public static String getNewString(String str){ String newString=""; try{ newString= new String(str.getBytes("iso-8859-1"), "utf-8"); }catch(Exception e){ e.printStackTrace(); } return newString; } }
调用工具类:
String u = request.getParameter("username");
Mytool.getnewString(u);
超链接的提交方式和get的提交处理是一样的
四、兼容浏览器的版本信息问题,如果IE6或以下版本,第二、三种会出现乱码
超链接乱码 和 sendRedirect乱码
String info=java.net.URLEncoder encode("你好吗.jpg",“utf-8”);
<a href="" + info>测试</a>
response.sendRedirect("servlet地址 ?username= " + info);
后记:
在服务器端是中文,在response的时候,也要考虑浏览器是否显示正确
response.setCharacterEncoding(“utf-8”);
response.setContentType("text/html;charset=utf-8")
以上是关于java web中文乱码处理笔记的主要内容,如果未能解决你的问题,请参考以下文章
[原创]java WEB学习笔记17:关于中文乱码的问题 和 tomcat在eclipse中起动成功,主页却打不开
[原创]java WEB学习笔记61:Struts2学习之路--通用标签 property,uri,param,set,push,if-else,itertor,sort,date,a标签等(代码片段