博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java处理乱码问题
阅读量:4578 次
发布时间:2019-06-08

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

中文乱码分为GET乱码和POST乱码

GET乱码在Tomcat中配置编码

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000"  edirectPort="8443"
URIEncoding="UTF-8" />
 
或者
 
String str=new String("str".getBytes("UTF-8"),"ISO-8859-1");
解析:
tomcat默认全部都是用ISO-8859-1编码,不管你页面用什么显示,Tomcat最终还是会替你将所有字符转做ISO-8859-1.那么,当在另目标页面再用GBK翻译时就会将本来错的编码翻译成GBK的编码,这时的文字会乱码. 
所以需要先将得到"字符"(不管是什么)都先用字节数组表示,且使用ISO-8859-1进行翻译,得到一个在ISO-8859-1编码环境下的字节数组.例如:AB表示成[64,65].然后再用GBK编码这个数组,并翻译成一个字符串. 
那么我们可以得到一个编码转换的过程 
假设:GBK码("你")->URLencode后变成->(%3F%2F)->Tomcat自动替你转一次ISO-8859-1->得到( 23 43 68 23 42 68 每一个符号表示为ISO-8859-1中的一个编码)->接收页面--->再转一次为ISO-8859-1的Byte数组[23,43,68,23,42,68]--->用GBK再转为可读的文字--->(%3F%2F"---->转为("你")
 
 
POST乱码在spring配置文件中加入
 

<filter>

<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

 

数据库连接配置
 jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=UTF-8
 

 

 

转载于:https://www.cnblogs.com/jimmy-muyuan/p/5491898.html

你可能感兴趣的文章
supervisor
查看>>
洛谷P1081 开车旅行70分
查看>>
Linux中用户及用户组
查看>>
python常用sql语句
查看>>
退休惠普九大感言——根源(虽然不是孙振耀写的,但正如孙振耀本人所说:写这篇文章的人对大家的影响、启发,内容比谁来写更有意义)...
查看>>
IE 下a标签在 position:absolute 后无法点击的问题
查看>>
jquery 正则表达式
查看>>
mysql查询更新时的锁表机制分析(只介绍了MYISAM)
查看>>
JDBC如何调用存储过程
查看>>
扫盲记-第五篇--图像全景分割
查看>>
Haproxy安装与配置
查看>>
Linux之Ganglia源码安装
查看>>
Android中的Handler,Looper,Message机制
查看>>
Roman Numeral Converter
查看>>
魔幻之翼的博客
查看>>
文件发送成功率低的问题(1)
查看>>
异步方法 async/await
查看>>
37 数组的概念
查看>>
去掉SrollView、GrdiView、ListView、ViewPager等滑动到边缘的光晕效果
查看>>
我选择的……
查看>>