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标签等(代码片段

java WEB,项目部署到服务器,IE浏览器页面中文有乱码

day10-1-中文乱码处理

java web 乱码

JAVA WEB代码片段