乱码常常出现在哪些位置数据保存过程中的乱码数据展示过程中的乱码

经过执行Java程序以后,Java程序负责向浏览器响应的时侯linux tomcat 中文乱码,英文乱码Java程序中设置响应的内容类型,以及对应的字符字符集response.setContentType(“text/html;charset=UTF-8”);

没有经过Java程序linux tomcat 中文乱码,直接访问的是静态页面文件编码时字符集,与浏览器解析时使用的字符集要一致,比如文件编码时使用的字符集是UTF-8redhat linux 9.0,这么可以在网页文件中使用标签来指定网页编码时使用的字符集

数据传递过程中的乱码浏览器对数据进行编码发送到服务器(GET)GET恳求的数据在恳求体,所以会对部份URL进行编码怎么编码将表单中的数据(通配符对)经过URLencode编码后追加到url中(URLencode编码过程使用的字符集由浏览器决定)编码流程图

Java程序中文乱码解决方法_linux tomcat 中文乱码_Tomcat7.0乱码解码设置

服务器接收到数据进行解码怎么解码以Tomcat7.0为例,Tomcat会使用默认的ISO-8859-1进行解码linux操作系统安装,此时字符集可能与浏览器端编码的字符集不同而出现乱码解码流程图

Java程序中文乱码解决方法_linux tomcat 中文乱码_Tomcat7.0乱码解码设置

linux tomcat 中文乱码_Tomcat7.0乱码解码设置_Java程序中文乱码解决方法

浏览器对数据进行编码发送到服务器(POST)POST恳求方法数据在恳求体中怎样编码将表单中的数据(通配符对)经过URLencode编码后放在恳求体中(URLencode编码过程使用的字符集默认由网页标签属性设置决定)编码流程图

Java程序中文乱码解决方法_linux tomcat 中文乱码_Tomcat7.0乱码解码设置

服务器接收到数据进行解码怎么解码以Tomcat7.0为例,Tomcat会使用默认的ISO-8859-1进行解码,此时字符集可能与浏览器端编码的字符集不同而出现乱码(可通过Java程序进行字符集的设置)解码流程图

Java程序中文乱码解决方法_linux tomcat 中文乱码_Tomcat7.0乱码解码设置

解决方式

适用于POST和GET

//获取乱码字符

Tomcat7.0乱码解码设置_linux tomcat 中文乱码_Java程序中文乱码解决方法

String value = request.getParameter("name"); //将乱码字符通过错误的ISO-8859-1编码方式重新还原回去 byte[] bytes = dname.getBytes("ISO-8859-1"); //再通过正确的编码方式进行解码 value = new String(bytes, "UTF-8");

仅支持POST恳求

//设置字符编码方式

linux tomcat 中文乱码_Java程序中文乱码解决方法_Tomcat7.0乱码解码设置

request.setCharacterEncoding("UTF-8"); //获取正确的字符 String value = request.getParameter("name");

仅支持GET

更改Tomcat默认的编码字符集

修改CATALINA_HOME/conf/server.xml文件,

linux tomcat 中文乱码_Tomcat7.0乱码解码设置_Java程序中文乱码解决方法

加上URLEncoding="UTF-8"属性,设置请求行上的编码方式,解决GET请求乱码

URLencode

是将字符通过某种字符集进行编码后,再使用百分号编码

如字符通过UTF-8字符集进行编码后得到的二补码文件,之后将二补码转化为16补码,在每一个字符后面加上%作为分隔

          UTF-8                            百分号编码
"销售部"  ------> E9 94 80 E5 94 AE E9 83 A8 ------> %E9%94%80%E5%94%AE%E9%83%A8

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复