• 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")

  • 相关阅读:
    技本功丨收藏!斜杠青年与你共探微信小程序云开发(下篇)
    技本功丨收藏!斜杠青年与你共探微信小程序云开发(中篇)
    2-4-2-6HTML文件标签
    2-4-1-4——2-4-1-5HTML快速入门
    2-4-1-1——2-4-1-3HTML介绍
    redis
    2-1-2-06 获取class对象的三种方式
    2-1-2-05反射概述
    Java面试题
    servlet和http请求协议
  • 原文地址:https://www.cnblogs.com/qingcong/p/5902478.html
Copyright © 2020-2023  润新知