sv亚洲卡2卡3卡4卡新区乱码-解决中文乱码问题

sv亚洲卡2卡3卡4卡新区乱码-解决中文乱码问题

解决中文乱码问题

解决中文乱码问题

1. 字符集

1)字符(Character)它是各种文字和符号的总称,包括各国的文字、标点符号、图形符号、数字等。字符集(Characterset)是多个字符的集合。

2)计算机内的任何数据实际上都是以二进制的形式保存的,所以我们可以看到的字符本质上是以二进制的形式保存的。字符集实际上是可见字符和二进制数之间的对应表。

2. 编码与解码

1)编码:将字符转换为二进制数

'中'→E4B8AD→11100100-10111000-10101101

2)解码:将二进制数转换为字符

11100100-10111000-10101101→E4B8AD→'中'

3)乱码:如果编码与解码中使用的字符集不一致,就会产生乱码。

如下图所示:使用UTF-8编码,使用GBK解码

因此,解决乱码问题的基本方法是统一编码和解码字符集。

3. 统一字符集在Web应用中

1)请求参数中含有中文

·请求由浏览器发送给服务器

·由浏览器编码

·浏览器使用HTML页面指定的字符集编码,只需将HTML页面的字符集指定为UTF-8即可

·由服务器解码

·IOS-8859-1

·解决方案

·POST请求:POST请求在Servlet中解码,默认字符集为ISO-8859-1,不支持中文,需要修改Servlet字符集为UTF-8。使用

request.setCharacterEncoding("UTF-8");设置request对象,用utf-8字符集解码请求体中的内容。但需要注意的是,此操作必须在调用getparameter()方法之前进行。

·对于GET请求:GET请求是在URL地址栏中传输请求参数,Tomcat服务器自动解码,Tomcat服务器默认字符集也是ISO-8859-1,

因此,我们需要将Tomcat服务器的字符集修改为UTF-8。由于请求参数包含在请求行中,无法通过request对象设置,因此需要在server中设置.在xml文件中修改Conector标签,添加URIEncoding=“utf-8"属性。

修改eclipse中的tomcat镜像即可生效。但是,如果将来删除当前的tomcat镜像并重新连接tomcat,则设置将失效,因此最好在tomcat配置文件中进行配置。

2)服务器响应中含有中文

·服务器向浏览器发送响应

·由服务器编码

sv亚洲卡2卡3卡4卡新区乱码

·默认使用ISO-8859-1编码

·由浏览器解码

·默认情况下,GBK用于解码

·解决方案

·方法1:设置响应头

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

·方法2:设置响应的内容类型

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

·这样,浏览器响应体的编码方法就可以在响应头中告诉浏览器;同时,服务器也会用这个字符集编码

但需要注意的是,responsee必须采用两种方法.getWriter()前进行。

以上是关于sv亚洲卡2卡3卡4卡新区乱码的内容,如果你喜欢本篇文章,欢迎收藏及分享!

展开全文