Web—05:乱码问题汇总

 

乱码的根本原因:

保存时的编码 和解析时(解码)采用了不同的字符编码,而每种字符编码采用了不同的编码规则。

 

  • 编码:将字符转换成二进制字节流。
  • 解码:将二进制字节流转换为字符。

 

  • 字符集:ASCII字符集、GB2312字符集、Unicode字符集(包含多种字符编码:UTF-8,UTF-16等)、BIG5字符集、 GB18030字符集等。
  • 常见的字符编码:GBK、GB2312 (早期)、UTF-8、ISO-8859-1、ASCII等。

 

所以解决乱码的方法:

统一开发工具、Tomcat、浏览器、xml、数据库、HTML页面、JSP页面等默认的字符编码

 


下面是常见的几种乱码类型:

1.开发环境乱码

由于Java默认使用UTF-8编码,而且网上很多人都建议Struts开发的时候应尽量选用UTF-8做为默认编码,而非GBK。IDE使 用Eclipse,在第一次使用Eclipse的时候应将default text editor改为UTF-8编码。

特别是Java开发的,推荐从页面到数据库再到配置文件都使用UTF-8进行编码,安全第一。

 

2.POST请求的过滤

这个是最基本的了,每个Servlet系统基本都会用到这个东西。不过只对POST请求有效,这个挺关键的。使用        SetCharacterEncodingFilter,这个很基础的一套过滤器,将所有来自页面的POST请求全部过滤为UTF-8编码。

 

3. JSP 页面乱码

将JSP页面全部改为charset=UTF-8,这样可以保证与后台交互的时候都是UTF-8编码,一般应用做了以上工作就基本可以应付了。

 

4.资源文件中汉字转化UTF-8字符问题

国际化问题,在使用资源文件的时候,由于中文在properties文件中无法被程序所识别,需要将其进行转码,我在资源文件下面制作了一个很简单的 bat文件,每次修改资源文件的时候都是在一个临时文件中修改,然后执行这个bat文件,将其转化并保存为所需要的资源文件。

 

5. GET请求乱码

如果在本项目中采用了get方式提交请求并附加参数,结果导致编码乱码,原因是Tomcat默认请求编码是ISO8859,需要在Tomcat的配置文件 server.xml添加一个参数,URIEncoding=”UTF-8”,这样请求中附件的参数就会以UTF-8来进行编码。

 

 


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值