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

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

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

解决中文乱码问题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()之前进行。

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

快速融资2.5亿,国产ToDesk一路直上,打破德国垄断

快速融资2.5亿,国产ToDesk一路直上,打破德国垄断

2020年初的一场疫情,打的所有人措手不及。许多行业都受到严重冲击,但同时,也有些行业逆势上扬,例如远程控制行业,为了保障疫情下的正常运转,远程办公迅速走进了大家的视野,众多国内外科技公司纷纷入局,直接开启了在线办公浪潮。并且据数据观察:远程控制2022年市场将高达数十亿元!...

抖音小店入口在哪?登陆网址是多少?

抖音小店入口在哪?登陆网址是多少?

抖音小店入口在哪?登陆网址是多少? 骨灰级短视频玩家 15225510421​www.zhihu.com/people/qing-yang-59-28 随着抖音的崛起很多抖音电商作为抖音的核心力量,无疑是吸引了很多商家前来入住,为什么这么说呢,因为抖音日活跃8亿作为现在 最...

抖音小店商家入驻官方供应链全流程分享,再也不用担心货源了!

抖音小店商家入驻官方供应链全流程分享,再也不用担心货源了!

今年6月份,抖音电商上线了供应链管理平台。供应商、品牌、分销商入驻之后,有人供货,有人分销,库存打通,缩短渠道链路。 简单一点说就是,如果你是抖店商家,又没有自己的货源,就可以入驻供应链平台,直接在平台选品卖货,也不用愁发货的问题,订单加密,多多限制那些就都不用管了。 锋哥...

蔚财早讯 | 2月份70城房价:一线城市同比上涨!欧洲央行坚定加息50个基点!

蔚财早讯 | 2月份70城房价:一线城市同比上涨!欧洲央行坚定加息50个基点!

蔚财早讯20230317 音频: 进度条 00:00 06:04 后退15秒 倍速 快进15秒 3月17日核心看点 2月份70城房价:一线城市同比上涨 数字经济渐成高质量发展“新引擎” 6-7折!深圳:人才房卖爆了...

2月70城新房价格:40城环比下跌 三线城市同比转跌

2月70城新房价格:40城环比下跌 三线城市同比转跌

中新社北京3月16日电(记者庞无忌)中国大中城市房价的回暖进程出现一定反复,多地房价在涨跌区间内小幅震荡。 图为3月11日,航拍高楼林立的福州城区。中新社记者王东明摄 中国国家统计局16日发布...

人民艺术家秦怡去世,享年一百岁,曾出演铁道游击队芳林嫂

人民艺术家秦怡去世,享年一百岁,曾出演铁道游击队芳林嫂

5月9日,据报道,“人民艺术家”秦怡于4时08分病逝,享年一百岁。作为中国百年电影史的见证者和耕耘者,“人民艺术家”的秦怡,生于1922年,先后出演了《铁道游击队》、《马兰花开》、《女篮5号》、《上海屋檐下》、《青海湖畔》、《那些女人》等多部经典优秀的影视作品。1956年,秦怡搭档曹会渠,一起出演了...