-
java代码设置tomcat编码_更改Tomcat字符编码设置及解决post请求中文字符乱码
2021-03-13 04:18:55当你在web.xml中配置了字符编码设置,可是请求url中的中文字符仍然乱码,很可能的原因就是Tomcat的...Get请求如果是get请求,我们可以通过更改Tomcat目录下,conf/server.xml中的Connector中指定 URIEncoding=”UTF-...当你在web.xml中配置了字符编码设置,可是请求url中的中文字符仍然乱码,很可能的原因就是Tomcat的字符编码配置问题,具体的解决办法如下。
默认编码
如果没有指定字符编码,Servlet规范规定使用”ISO-8859-1″作为默认的编码。
Get请求
如果是get请求,我们可以通过更改Tomcat目录下,conf/server.xml中的Connector中指定 URIEncoding=”UTF-8″ 参数,具体修改内容如下:
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />
Post请求
Post请求需要指定它发送的参数和值的编码。因为大多数客户端并没有设置一个明确的编码,默认采用的是ISO-8859-1。大多数情况下,这并不是我们想要的编码,我们可以使用过滤器来进行控制,Tomcat已经提供了完成这个功能的过滤器的例子或者内置了。请参看:
webapps/examples/WEB-INF/classes/filters/SetCharacterEncodingFilter.java
webapps/servlets-examples/WEB-INF/classes/filters/SetCharacterEncodingFilter.java
webapps/jsp-examples/WEB-INF/classes/filters/SetCharacterEncodingFilter.java
webapps/examples/WEB-INF/classes/filters/SetCharacterEncodingFilter.java
setCharacterEncodingFilter
org.apache.catalina.filters.SetCharacterEncodingFilter
encoding
UTF-8
setCharacterEncodingFilter
/*
-
更改Tomcat字符编码设置及解决post请求中文字符乱码
2018-10-20 16:55:00第二种方法,后来的时候公司的以为大佬指点,出现这种情况的原因是因为tomcat默认编码的问题,一般情况下要设置tomcatget请求只需要在server.xml中加上如下配置。 但是这种配置设置编码的方法只对get请求...我遇到这个问题的时候是在做一个第三方支付接口的时候,在回调函数中,解码URL的时候怎么解都不好使,解出来是乱码的问题,搞了半天没解决,百度找到了另一种方法。
这是第一种方法
new String(getURLDecoderString(json).getBytes("ISO-8859-1"),"utf-8")//json是你要解码的东西
第二种方法,后来的时候公司的以为大佬指点,出现这种情况的原因是因为tomcat默认编码的问题,一般情况下要设置tomcatget请求只需要在server.xml中加上如下配置。
<Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" redirectPort="8443" useBodyEncodingForURI="true"/>
但是这种配置设置编码的方法只对get请求有效但是对于post请求没有用
Post请求需要指定它发送的参数和值的编码。因为大多数客户端并没有设置一个明确的编码,默认采用的是ISO-8859-1。大多数情况下,这并不是我们想要的编码,我们可以使用过滤器来进行控制,Tomcat已经提供了完成这个功能的过滤器的例子或者内置了。请参看:
<!--4.x--> webapps/examples/WEB-INF/classes/filters/SetCharacterEncodingFilter.java <!--5.x--> webapps/servlets-examples/WEB-INF/classes/filters/SetCharacterEncodingFilter.java webapps/jsp-examples/WEB-INF/classes/filters/SetCharacterEncodingFilter.java <!--6.x--> webapps/examples/WEB-INF/classes/filters/SetCharacterEncodingFilter.java <!--7.x (已经将这个Filter加入Tomcat内置了,具体位置:tomcat目录下的conf/web.xml,直接复制一下代码到你的项目web.xml中)--> <filter> <filter-name>setCharacterEncodingFilter</filter-name> <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>setCharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
-
Tomcat服务器字符编码更改
2018-05-25 14:12:50修改Tomcat配置文档server.xml <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="utf-8" /&...修改Tomcat配置文档server.xml
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="utf-8" />
在最后加上 一行
URIEncoding="utf-8"表示将默认的iso8859-1编码方式更改为utf-8
-
数据乱码问题—更改mysql字符编码
2015-12-29 16:02:40忠告:每次搭建环境的时候一定要统一了编码格式,主要包括:浏览器、IDE(比如eclipse)、数据库(比如Mysql)、jsp页面的编码、服务器(比如Tomcat)和其他(比如我们使用maven等)今天将工作流模块跑作为一名程序猿,几乎每天都在跟编码格式,乱码作斗争,如何你没有被乱码虐过,你肯定不好意思说你是一枚优秀的程序员。这不是今天我也被乱码血洗了一遍,下面说一下我需要的问题,和解决问题的思路。
忠告:
每次搭建环境的时候一定要统一了编码格式,主要包括:浏览器、IDE(比如eclipse)、数据库(比如Mysql)、jsp页面的编码、服务器(比如Tomcat)和其他(比如我们使用maven等)
今天将工作流模块跑起来之后,发现自己添加的数据,每次读出来都是乱码,而且只要经过自己修改的数据都变成了乱码。然后开始排查。因为其他都没有错而且设计编码格式比较简单,就不在这里详细说明了,本篇文章只是解决一个mysql设置编码格式的问题。
步骤
1.查看了浏览器和IDE的环境,发现都是UTF-8的。
2.然后检查了jsp页面,也都是UTF-8的。注:大家在新建jsp页面的时候,记得修改编程格式(包括引入页面的编码格式)。
3.检查了tomcat的编码,也是UTF-8的。
4.检查mysql编码,发现最后的问题就是出在mysql。误区
因为使用了Navicat Premium,所以我第一反应就是在客户端修改了数据库的编码,可是发现还是乱码,然后修改了my.ini文件里面的字符集,发现还是没有解决问题。最后发现,修改完my.ini文件之后,必须重启mysql服务,记住不是重新连接数据库,是重启mysql服务,如果你没有使用命令的习惯,就去资源管理器中将mysql服务重启。
正确的解决方案:
一:查看默认字符集
默认情况下,mysql的字符集是latin1(ISO_8859_1),通常,查看系统的字符集和排序方式的设定可以通过下面的两条命令:
mysql> SHOW VARIABLES LIKE ‘character%’;
+————————–+———————————+
| Variable_name | Value |
+————————–+———————————+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir |C:\Program Files\MySQL\MySQL Server 5.5\share\chars
ets\
|
+————————–+———————————+mysql> SHOW VARIABLES LIKE ‘collation_%’;
+———————-+—————–+
| Variable_name | Value |
+———————-+—————–+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+———————-+—————–+二:修改默认字符集
(1)简单的修改方法,就是直接修改mysql的my.ini文件中的字符集键值。
(2)使用mysql的命令
mysql> SET character_set_client = utf8 ; mysql> SET character_set_connection = utf8 ; mysql> SET character_set_database = utf8 ; mysql> SET character_set_results = utf8 ; mysql> SET character_set_server = utf8 ; mysql> SET collation_connection = utf8 ; mysql> SET collation_database = utf8 ; mysql> SET collation_server = utf8 ;
三:重启mysql的服务
service mysql restar或者直接在资源管理器中找到mysql服务,直接重启。
附:我们也可以执行 :mysql>alter database mydb character set utf8;来修改已经建立的数据库字符集
总结
其实团体开发需要我们提前统一好各种工具使用的编码格式,这样可以减少很多麻烦,而且我们每个人安装工具的时候也要根据团队要求设置好编码格式。当然,有时候即使我们严格按照要求来设置,依旧会出现乱码,这时候就需要我们根据实际情况来解决,比如在代码中转码之类的,等遇到了再说。
-
tomcat设置字符编码,不改操作系统配置
2011-01-06 14:14:00如果操作系统配置文件编码不是你需要的,你又不能更改配置,那么可以在tomcat启动文件中设置编码。 例如: 在catalina.sh 头部加入 LC_ALL="zh_CN.GBK" LANG="zh_CN.GBK" ... -
更改数据库字符集编码引起的问题、textarea标签输出内容时不能顶格(左对齐)输出...
2018-04-02 18:24:00于是把Oracle的字符编码改成utf8,tomcat也改成UTF-8,重新部署发布,仍然解决不了问题。后来用MySQL数据库并提前设置好utf-8编码,乱码问题得以解决。原来,当把数据库更改编码后,以前旧的数据就会在数据库出现... -
Java Web开发字符编码小记
2014-01-20 22:57:05Tomcat 服务器默认字符编码是ISO8859-1,所以在取URL时存在中文的话需要转码,假设URL字符串中文部分是username,那么在JSP页面中可以这么处理 读取指定文件时也会涉及编码的问题,Myeclipse默认的编码方式是GBK... -
工程字符编码ANSI_X3.4-1968乱码错误及解决方案
2019-10-31 17:35:58CentOS7下面,当更改tomcat的启动用户(从root改为tomcat)后,而且使用的是daemon模式,当系统自动启动tomcat的时候,发现系统环境变量file.encoding打印的编码为ANSI_X3.4-1968,而不是UTF-8,所以日志中出现中文... -
Eclipse加入Tomcat
2019-04-19 10:00:18默认 端口为8080,如有冲突,可以更改,字符集编码在8.5以上版本默认就是UTF-8,低版本需要更 测试Tomcat 去bin文件夹启动startup.bat,如果最终显示Server startup in XXXms,则启动成功,如果出现异常,则八成是... -
tomcat 配置
2018-08-21 11:23:54更改端口号,设置字符编码: <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" /&... -
linux下tomcat的安装(十)
2018-02-05 13:05:251到官网下载tomcat的.tar.gz文件,移到linux下的/opt 2解压 tar -zxvf apache-tomcat-7.0.65....可以更改端口和设置字符编码(get请求有效) 启动tomcat 切换到 tomcat/bin目录下 输入 ./startup.sh -
解决Tomcat 乱码问题简洁版
2020-09-01 13:54:07关于启动tomcat之后,控制台(命令行)出现乱码 1.找到tomcat的安装目录并打开 2.找到并打开conf目录 ...#设置字符编码格式 #java.util.logging.ConsoleHandler.encoding = UTF-8 java.util.logging.Con -
IntelliJ IDEA完美解决tomcat8+乱码问题
2020-02-29 17:40:21IntelliJ IDEA完美解决tomcat8+乱码问题 问题:IDEA内使用tomcat控制台乱码(虽然不影响...原因:可能是编码字符集不正确 解决: 首先更改IDEA配置:ctrl+alt+S 修改一下为UTF-8 重启试下,果然还是不行... -
如何解决win 10系统下 Tomcat在cmd中启动时出现的中文乱码问题
2020-07-01 11:33:12如何解决win 10系统下 Tomcat在cmd中启动时出现的中文乱码问题 总结:一般情况下出现乱码的问题基本上是由于字符编码集...step1: 将其字符编码集统一更改为gbk模式 我们启动服务器并查看其默认编码集的情况 启动Tomca -
IDEA配置(基本配置、数据库连接、Tomcat部署)
2020-11-05 16:56:45文章目录基本配置一、编辑器字体大小设置二、字符编码设置三、自动编译设置四、主题设置五、JDK设置六、全局配置数据库连接配置Tomcat部署项目发布配置 基本配置 一、编辑器字体大小设置 1.首先打开你的IDEA编辑器,... -
设定linux系统支持的字符集
2019-09-16 11:22:56原因: linux默认支持的编码可能不支持中文,很多时候上线的项目可能会出现乱码。而我们看到的是在windows下的tomcat跑的很正常,到了linux下...这里更改linxu的字符集的位置是/etc/sysconfig下的i18n文件。 修改... -
springboot中base64前端编码与后端解码
2020-09-21 09:20:03当前端向后端传递的参数含非法字符时(tomcat由于版本升级,考虑安全性,将一些字符判定为非法字符,当然可以通过降低tomcat版本,或者增添配置来更改,但是这些都不是好的方法),可采用前端base64编码后再传向... -
System.getProperty("file.encoding") 究竟获取的是什么编码
2018-07-04 16:18:40所以一定要设置tomcat/jetty等容器的编码为utf-8 场景1——修改JVM系统字符集 系统默认的字符集是指,JVM运行时调用java.nio.Charset.defaultCharset().displayName()所显示的字符集。我们有如下几种方式... -
IDEA 编译报:Error:java: 未结束的字符串文字
2017-07-12 10:12:21发现编译时报:Error:java: 未结束的字符串文字 错误,同时无法运行test方法,但是不影响项目在tomcat运行和调试。 二.个别项目启动时会抛出“编码UTF-8的不可映射字符”的提醒。 解决方案: 1.在idea的Settings... -
request.getParameter() 底层编码问题导致的乱码
2015-01-12 16:21:16服务器tomcat收到这段字节流后,必须将它转成相应的字符,平时所使用的request.getParameter("name")直接得到了字符串, 那么从字节流到字符流这个过程系统己经帮助我们完成了(乱码的产生由此开始)tomcat中更改URI-... -
Eclipse/MyEclipse配置
2011-07-17 13:22:591、更改字符编码为UTF-8 2、将tab替换为4个空格 3、禁用MyEclipse内置的Tomcat,启用外置的Tomcat(测试环境:MyEclipse 6.5) 4、智能提示设置 5、导入、导出Preferences 1、更改字符编码 -
JAVA 乱码
2011-12-29 21:44:001. Tomcat默认的字符编码是"ISO-8859-1"。 2. Tomcat更改编码集,在server.xml的配置文件中更改。 <Connector connectionTimeout="20000" port="8080" protocol=... -
解决中文乱码
2016-10-19 21:10:44更改Tomcat平台中的字符编码--servlet.xml中的connector>中的一个属性 2. 通过String中的乱码解决方式来处理 核心句:byte bs[]=name.getBytes("ISO8859-1");//还原出原来 的字节编码 name=new String... -
BootstrapTable 搜索中文乱码问题解决
2018-03-14 14:46:40bootstrapTable搜索中文乱码问题 ...更改Tomcat的URI编码方式。 具体为:进入Tomcat目录,进入conf文件夹,打开server.xml文件(最好先进行一次备份),找到自己请求的连接头对应的代码,如: <Connector ... -
Jenkins使用Subversion插件的一些注意事项
2012-11-26 16:55:00jenkins 可以通过subversion插件完成与svn的集成,本来这个插件的使用没有什么难度,但是在最近的项目中却遇到如下...第一个问题是由于编码问题,首先要更改容器的字符集编码如更改tomcat中server.xml的connector的... -
JavaEE-----------servlet之解决中文乱码问题
2016-10-02 11:15:08更改Tomcat平台中的字符编码---servlet.xml中的中的一个属性--------<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000"redirectPort="8443" URIEncoding="UTF-8" /> * 2. 通过String中的... -
关于web项目中中文乱码问题
2016-05-19 09:03:34前几天做的项目中,页面显示中文的时候出现了乱码,各种方法都试了一遍都不行(页面的字符编码改变,传到后台时进行转码以及更改tomcat的配置文件等等都不行),最后发现了一个问题就是用ajax往后台传递数据的时候post...