当前位置:首页 > 杂谈 > 正文内容

解决中文乱码问题-中文乱码出现的原因

2023-10-10 14:08:47TONY杂谈69

解决中文乱码问题1. 字符集

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

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

2. 编码与解码

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

中 → E4B8AD → 1110 0100-1011 1000-1010 1101

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

1110 0100-1011 1000-1010 1101 → 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文件中修改Connector标签,添加URIEncoding="utf-8"属性。

在eclipse中的Tomcat镜像中修改即可生效。但如果将来删除当前Tomcat镜像,重新关联Tomcat,则会使设置失效,所以在Tomcat配置文件中最好也进行配置。

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

· 响应由服务器发送给浏览器

· 由服务器编码

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

· 由浏览器解码

· 默认使用GBK进行解码

· 解决方案

· 方法1:设置响应头

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

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

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

· 通过这种方式可以在响应头中告诉浏览器响应体的编码方式是UTF-8;同时服务器也会采用该字符集进行编码

但需要注意的是,两种方法一定要在response.getWriter()之前进行。

“解决中文乱码问题-中文乱码出现的原因” 的相关文章

原创
            《卖油翁》最后一句为何要删除?专家:你看最后说了啥

原创 《卖油翁》最后一句为何要删除?专家:你看最后说了啥

原标题:《卖油翁》最后一句为何要删除?专家:你看最后说了啥 历史洪荒,岁月漫漫大浪淘沙,回首展望千古,烽火春秋,风度魏晋,璀璨盛唐,风情大宋,儒雅明清。每一个时代都承载了一道独特的风景,沉淀在这浮动的五千年里。 时光流转,在千百年后的今天,我们取之精华,去其糟粕...

卢布成为今年表现最佳的货币,此现象反映哪些问题?

卢布成为今年表现最佳的货币,此现象反映哪些问题?

唯一的一个点:我资源你没有,俄罗斯用能源、粮食这些大宗交易原材料作为锚定卢布。卢布就有了货币信用的价值 俄罗斯地广、人硬,关键有硬货原油、天然气、煤炭、钻石、农林牧资源等等资源,各种资源在手,美元只是一张纸,...

视频号内测运费险 或将于 5 月正式面市 智己汽车联席CEO刘涛:第三款车和第四款车分别对标特斯拉Model Y、Model 3

视频号内测运费险 或将于 5 月正式面市 智己汽车联席CEO刘涛:第三款车和第四款车分别对标特斯拉Model Y、Model 3

【亿邦原创】亿邦动力独家消息,微信视频号正在灰度测试运费险,有商家称测试已持续近三个月。此前,有商家告诉亿邦动力,视频号运费险可能会在今年 5 月正式上线。 运费险是电商重要基建之一,几乎是平台标配服务。2020 年,抖音就上线抖店运费险服务,此后不断推出补贴计划。2021 年,快...

2022年诺奖深度解读:研究古人类,凭什么拿生理学或医学奖?

2022年诺奖深度解读:研究古人类,凭什么拿生理学或医学奖?

据诺贝尔奖官网10月3日消息,2022年诺贝尔生理学或医学奖授予瑞典科学家斯万特帕博(Svante Pbo),以表彰他“在已灭绝人类基因组和人类进化方面的发现”。 自1997以来,帕博一直担任德国马克斯普朗克进化人类学研究所所长,其重要研究成果包括对尼安德特人进行基因组测序、发现名...

楼市进入复苏通道,一二线城市2月房价环比均上涨

楼市进入复苏通道,一二线城市2月房价环比均上涨

界面新闻记者 | 杨冰柯 界面新闻编辑 | 无论是房价还是销售数据,热点城市楼市均迎来小阳春。 3月16日,国家统计局发布2月70个大中城市商品住宅销售价格指数。2月份一、二、三线新房价格环比全部上涨;二手房环比上,一线和二线城市房价环比上涨,三线城市房价环比持平...

谨防上当受骗!临沂多地公安、镇政府发布紧急提醒

谨防上当受骗!临沂多地公安、镇政府发布紧急提醒

临近年底,各类骗局又开始轮番上演,且花样不断翻新。近日,临沂多地发布重要提醒,临报融媒记者为您进行了梳理,在此提醒广大市民,要擦亮眼睛做好防范,谨防上当受骗。 兰山:冒充领导干部诈骗 10月28日,兰山区义堂镇人民政府发布《关于不法分子利用网络、微信冒充义堂镇领导干部名义进...