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

 更新时间:2018年01月10日 09:32:35   作者:bestcxx  
这篇文章主要给大家介绍了关于tomcat服务器如何配置字符集为utf-8彻底解决中文乱码问题的相关资料,文中先对字符集进行了简单的介绍,然后给大家详细介绍了解决的方法,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。

什么是字符集

在介绍字符集之前,我们先了解下为什么要有字符集。我们在计算机屏幕上看到的是实体化的文字,而在计算机存储介质中存放的实际是二进制的比特流。那么在这两者之间的转换规则就需要一个统一的标准,否则把我们的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文件

将相关语句改为:

<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

总结

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

相关文章

  • 详解如何使用Spark和Scala分析Apache访问日志

    详解如何使用Spark和Scala分析Apache访问日志

    这篇文章主要介绍了详解如何使用Spark和Scala分析Apache访问日志,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-06-06
  • Ubuntu下Sublime Text无法输入中文最简单的解决方案

    Ubuntu下Sublime Text无法输入中文最简单的解决方案

    今天小编就为大家分享一篇关于Ubuntu下Sublime Text无法输入中文最简单的解决方案,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • apache中封IP的实现方法

    apache中封IP的实现方法

    最简单的方法是从Apache里封(如果你是用Apache当服务器的话)。你既可以在httpd.conf配置文件里设置,又可以在.htaccess里设置。
    2011-04-04
  • 解决linux ftp匿名上传、下载开机自启问题

    解决linux ftp匿名上传、下载开机自启问题

    这篇文章主要介绍了linux ftp匿名上传、下载,开机自启问题,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • Linux环境使用g++编译C++方法总结

    Linux环境使用g++编译C++方法总结

    本篇文章给大家分享了在Linux环境中用g++编译C++的方法以及相关实例代码分享,有兴趣的朋友学习下。
    2018-03-03
  • 阿里云Centos配置iptables防火墙教程

    阿里云Centos配置iptables防火墙教程

    这篇文章主要为大家详细介绍了阿里云Centos配置iptables防火墙教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • 在linux (centos)上使用puppeteer实现网页截图功能

    在linux (centos)上使用puppeteer实现网页截图功能

    这篇文章主要介绍了在linux (centos)上使用puppeteer实现网页截图功能,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11
  • linux中如何查看Raid磁盘阵列信息

    linux中如何查看Raid磁盘阵列信息

    这篇文章主要介绍了linux中如何查看Raid磁盘阵列信息的相关资料,需要的朋友可以参考下
    2015-09-09
  • 解决vim语法高亮不起作用的方法

    解决vim语法高亮不起作用的方法

    这篇文章主要给大家介绍了如何解决vim语法高亮不起作用的方法,文章给大家介绍了多种解决的方法,大家可以根据需要看看是哪个方面的问题,希望能对遇到这个问题的朋友们有所帮助,下面来一起看看吧。
    2016-10-10
  • linux最快的文本搜索神器ripgrep(grep的最好代替者)

    linux最快的文本搜索神器ripgrep(grep的最好代替者)

    这篇文章主要介绍了linux最快的文本搜索神器ripgrep(grep的最好代替者),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11

最新评论