首页 > 代码库 > java web中文乱码处理笔记
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中文乱码处理笔记