前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >tomcat服务器如何配置字符集为utf-8彻底解决中文乱码的问题详解

tomcat服务器如何配置字符集为utf-8彻底解决中文乱码的问题详解

作者头像
砸漏
发布2020-10-19 13:11:20
1.8K0
发布2020-10-19 13:11:20
举报
文章被收录于专栏:恩蓝脚本恩蓝脚本

什么是字符集

在介绍字符集之前,我们先了解下为什么要有字符集。我们在计算机屏幕上看到的是实体化的文字,而在计算机存储介质中存放的实际是二进制的比特流。那么在这两者之间的转换规则就需要一个统一的标准,否则把我们的U盘插到老板的电脑上,文档就乱码了;小伙伴QQ上传过来的文件,在我们本地打开又乱码了。于是为了实现转换标准,各种字符集标准就出现了。简单的说字符集就规定了某个文字对应的二进制数字存放方式(编码)和某串二进制数值代表了哪个文字(解码)的转换关系。

那么为什么会有那么多字符集标准呢?这个问题实际非常容易回答。问问自己为什么我们的插头拿到英国就不能用了呢?为什么显示器同时有DVI,VGA,HDMI,DP这么多接口呢?很多规范和标准在最初制定时并不会意识到这将会是以后全球普适的准则,或者处于组织本身利益就想从本质上区别于现有标准。于是,就产生了那么多具有相同效果但又不相互兼容的标准了。

说了那么多我们来看一个实际例子,下面就是屌这个字在各种编码下的十六进制和二进制编码结果,怎么样有没有一种很屌的感觉?

字符集

16进制编码

对应的二进制数据

UTF-8

0xE5B18C

1110 0101 1011 0001 1000 1100

UTF-16

0x5C4C

1011 1000 1001 1000

GBK

0x8CC5

1000 1100 1100 0101

引言

我们在程序编写的过程中总是会遇到一些中文编码的问题,需要在程序中很多环节中去进行过滤和转义,依旧有可能遇到中文乱码的问题,下面是我的一个同事告诉我的方法,百时不灵,当然是针对于tomcat服务器来说的。

此外,这个方法并不会对之前的那些方法造成冲突。

服务器/conf目录/server.xml文件

将相关语句改为:

代码语言:javascript
复制
<Connector port="8008" protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443" URIEncoding="UTF-8"/>

之前的语句没有URIEncoding="UTF-8"这一句

有朋友问了一个问题:这个方法好像只针对get请求有效,对于POST请求需要怎么解决呢?除了req.setCharacterEncoding(&quot;UTF-8&quot;);这个方法之外?

其实乱码问题需要整个系统统筹规划的。从你的数据库设计,后台字符过滤,前台数据传递。单纯使用 req.set并不总会奏效。

所以,你如果是post提交,第一检查数据库格式是不是utf8的,第二,post提交form表单有没有设置utf8

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对ZaLou.Cn的支持。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-09-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档