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卡新区乱码的内容,如果你喜欢本篇文章,欢迎收藏及分享!