zoukankan      html  css  js  c++  java
  • day19(乱码解决方案)

    乱码的解决方案:

        首先需要理解乱码的产生原因:无非就是编码格式的问题

        1.服务器到浏览器  

           字节流传输时

            产生乱码的原因:

                 1.浏览器打开方式不对(打开时 的方式为默认的方式,各个浏览器的方式都不同)

                 2.中文转字节数组

              解决方案:

    ServletOutputStream outputStream = response.getOutputStream();
    response.setHeader("Content-Type", "text/html;charset=utf-8");//设置响应头部
    outputStream.write("成功".getBytes());
    outputStream.close();    
    

           字符流传输时

               产生乱码的原因:

                 字符流传输时是存在缓存区的,response获得字符流,

                 缓冲区中的默认编码格式为ISO-8859-1码,这个字符不支持中文;

               解决方案1

    response.setHeader("Content-Type", "text/html;charset=utf-8");
    response.setCharacterEncoding("utf-8");
    response.getWriter().print("中文1");                
    

                  解决方案2

    response.setContentType("text/html;charset=utf-8");
    response.getWriter().print("中文1");
    

    2.浏览器到服务器乱码

          乱码产生分为两类doGet和doPost

            doGet乱码原因

                  浏览器-------url-------服务器

                    在请求时:数据在url中对数据进行了一次编码(ISO-8859-1);

                    浏览器----(ISO-8859-1编码)----url-------服务器

                      在传递的过程中都是使用字节传输的。

              解决方案:

                  在服务器解决乱码:获取传递参数是先使用ISO-8859-1解码称为字节

                           再使用UTF-8进行重新编码

                    new String(request.getParameter(String name).getByte("ISO-8859-1"),"UTF-8");

            doPost乱码原因

                  浏览器-----缓冲区(ISO-8859-1)-----服务器

                    只需要修改缓冲区编码格式就可以了

                    request.setCharacterEncoding("UTF-8");

        3.编码格式转换  

          url进行编码 

    java.net.URLDecoder.decode(String s,String enc);
    将application/x-www-form-urlencoded字符串转换成普通字符串。
    
    java.net.URLEncoder.decode(String s,String enc);
    将普通字符串转换成application/x-www-form-urlencoded字符串。

        

                               

                    

                      

                    

  • 相关阅读:
    如何让呼吸机用得更好:4款最好用的鼻枕面罩
    睡眠呼吸机的保养步骤
    干货!科学调整桌椅键盘高度和显示器距离,告别办公疲劳!
    羽绒服的选择标准
    为什么有些羽绒服穿一季就不暖和了?
    不想加班开发管理后台了,试试这个 Java 开源项目吧!
    HelloGitHub 月刊最受欢迎的开源项目 Top10(2020 年)
    SonarQube学习(四)- 使用Jenkins集成JaCoCo和SonarQube检查代码测试覆盖率
    解决 Jenkins 安装插件很慢的问题 ( Linux )
    Docker学习(二)- Docker 安装 Jenkins
  • 原文地址:https://www.cnblogs.com/fjkgrbk/p/charset.html
Copyright © 2011-2022 走看看