博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Eclipse项目中乱码问题的解决办法
阅读量:6209 次
发布时间:2019-06-21

本文共 1670 字,大约阅读时间需要 5 分钟。

一、产生的原因:

  1、Http协议进行通信的时候是基于请求和响应的,传输的内容我们称之为报文!

  2、Http协议会按照一定的规则将报文编码,然后在读取的时候再使用响应的解码格式进行解码!

  3、这个一定的规则指的就是字符集:ASCII,iso8859-1,gbk,gb2312,utf-8

  4、编码:将字符按照字符集转化为二进制格式

  5、解码:将二进制代码按照响应的字符集转化为字符!

  乱码的根本原因:就是编码和解码指定的字符集不一致造成的!

二、字符集:

  1、ASCII字符集:美国信息交换标准代码,,单字节编码,主要用于显示现代英语

  2、ISO8859-1字符集:单字节编码,ISO-8859-1收录的字符除ASCII收录的字符外,还包括西欧语言、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号

  3、GB2312字符集:中国国家标准简体中文字符集,收录常用汉字

  4、GBK字符集:汉字内码扩展规范,向下兼容GB2312,兼容Unicode 编码,GBK是采用单双字节变长编码

  5、UTF-8:是一种针对Unicode的可变长度字符编码,又称万国码,用在网页上可以统一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。

三、解决办法:

  1、请求报文:

    浏览器编码---------->服务器解码

      浏览器是按照给定页面的编码格式进行编码的,所以只需要设置网页的编码格式为utf-8就可以了!

    get请求

    解码:使用的是tomcat默认的解码格式,默认是iso8859-1;

     针对Get方式的乱码问题,由于参数是通过URL传递的,所以通过request设置的编码格式是不起作用的,此时可以在每次发生请求之前对URL进行编码:

      例如:Location.href="/encodeURI"("http://localhost/test/s?name=中文&sex=女");

     更简便的方法,那就是在服务器端配置URL编码格式:

       我们在server.xml文件中设置:

        <Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

    post请求

    解码:使用的是tomcat默认的解码格式,默认是iso8859-1;

      在服务器端我们使用的是:req.setCharacterEncoding("utf-8");来设置解码格式

    注意:req.setCharacterEncoding("utf-8")一定要设置在第一次获取请求参数之前!

  2、响应编码
    服务器编码------------->浏览器解码

      1)第一种解决方案:

        resp.setCharacterEncoding("utf-8");

        resp.setHeader("Content-Type", "text/html;charset=utf-8");

      2)第二种解决方案:

        resp.setHeader("Content-Type", "text/html;charset=utf-8");

      3)第三种方案:

        resp.setContentType("text/html;charset=utf-8");

Content-Type   用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件 CharacterEncoding   作用是设置对客户端请求进行重新编码的编码 也就是说一个是设置读,一个是设置取

转载于:https://www.cnblogs.com/java-zmj/p/7839152.html

你可能感兴趣的文章
我的友情链接
查看>>
mybatis insert语句 返回插入的记录的主键值
查看>>
Dedecms系统实现按“字母检索”搜索功能
查看>>
1028-WEB Navigation
查看>>
安全Lab
查看>>
我的友情链接
查看>>
Spring学习总结(4)——Spring AOP教程
查看>>
iOS开发网络篇—NSURLConnection基本使用
查看>>
fstab文件说明
查看>>
commons-pool2源码分析evictor
查看>>
Ant——学习(1):初步了解
查看>>
MacOS Sierra升级问题小记
查看>>
在苹果MAC OS X Lion系统上使用系统自带程序配置Exchange邮箱
查看>>
易宝典文章——玩转Office 365中的Exchange Online服务 之十五 怎样管理Exchange Online的动态通讯组...
查看>>
Mysql——子查询
查看>>
最后说一声再见,以后你只存在记忆里——Windows XP
查看>>
邮件服务简单介绍
查看>>
Quantum-NSA最强大的互联网***工具
查看>>
论封闭网络的安全
查看>>
linux screen 使用方法
查看>>