精华内容
下载资源
问答
  • 当你在web.xml中配置了字符编码设置,可是请求url中的中文字符仍然乱码,很可能的原因就是Tomcat的...Get请求如果是get请求,我们可以通过更改Tomcat目录下,conf/server.xml中的Connector中指定 URIEncoding=”UTF-...

    17270ce95af85a4a2d33846cd5831d99.png

    当你在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默认编码的问题,一般情况下要设置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 &lt;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启动文件中设置编码。 例如: 在catalina.sh 头部加入 LC_ALL="zh_CN.GBK" LANG="zh_CN.GBK" ...
  • 于是把Oracle的字符编码改成utf8,tomcat也改成UTF-8,重新部署发布,仍然解决不了问题。后来用MySQL数据库并提前设置好utf-8编码,乱码问题得以解决。原来,当把数据库更改编码后,以前旧的数据就会在数据库出现...
  • Tomcat 服务器默认字符编码是ISO8859-1,所以在取URL时存在中文的话需要转码,假设URL字符串中文部分是username,那么在JSP页面中可以这么处理 读取指定文件时也会涉及编码的问题,Myeclipse默认的编码方式是GBK...
  • CentOS7下面,当更改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
    更改端口号,设置字符编码:  &lt;Connector port="80" protocol="HTTP/1.1"  connectionTimeout="20000"  redirectPort="8443" URIEncoding="UTF-8" /&...
  • 1到官网下载tomcat的.tar.gz文件,移到linux下的/opt 2解压 tar -zxvf apache-tomcat-7.0.65....可以更改端口和设置字符编码(get请求有效) 启动tomcat 切换到 tomcat/bin目录下 输入 ./startup.sh
  • 关于启动tomcat之后,控制台(命令行)出现乱码 1.找到tomcat的安装目录并打开 2.找到并打开conf目录 ...#设置字符编码格式 #java.util.logging.ConsoleHandler.encoding = UTF-8 java.util.logging.Con
  • IntelliJ IDEA完美解决tomcat8+乱码问题 问题:IDEA内使用tomcat控制台乱码(虽然不影响...原因:可能是编码字符集不正确 解决:  首先更改IDEA配置:ctrl+alt+S 修改一下为UTF-8 重启试下,果然还是不行...
  • 如何解决win 10系统下 Tomcat在cmd中启动时出现的中文乱码问题 总结:一般情况下出现乱码的问题基本上是由于字符编码集...step1: 将其字符编码集统一更改为gbk模式 我们启动服务器并查看其默认编码集的情况 启动Tomca
  • 文章目录基本配置一、编辑器字体大小设置二、字符编码设置三、自动编译设置四、主题设置五、JDK设置六、全局配置数据库连接配置Tomcat部署项目发布配置 基本配置 一、编辑器字体大小设置 1.首先打开你的IDEA编辑器,...
  • 原因: linux默认支持的编码可能不支持中文,很多时候上线的项目可能会出现乱码。而我们看到的是在windows下的tomcat跑的很正常,到了linux下...这里更改linxu的字符集的位置是/etc/sysconfig下的i18n文件。 修改...
  •   当前端向后端传递的参数含非法字符时(tomcat由于版本升级,考虑安全性,将一些字符判定为非法字符,当然可以通过降低tomcat版本,或者增添配置来更改,但是这些都不是好的方法),可采用前端base64编码后再传向...
  • 所以一定要设置tomcat/jetty等容器的编码为utf-8 场景1——修改JVM系统字符集 系统默认的字符集是指,JVM运行时调用java.nio.Charset.defaultCharset().displayName()所显示的字符集。我们有如下几种方式...
  • 发现编译时报:Error:java: 未结束的字符串文字 错误,同时无法运行test方法,但是不影响项目在tomcat运行和调试。 二.个别项目启动时会抛出“编码UTF-8的不可映射字符”的提醒。 解决方案: 1.在idea的Settings...
  • 服务器tomcat收到这段字节流后,必须将它转成相应的字符,平时所使用的request.getParameter("name")直接得到了字符串, 那么从字节流到字符流这个过程系统己经帮助我们完成了(乱码的产生由此开始)tomcat更改URI-...
  • Eclipse/MyEclipse配置

    千次阅读 2011-07-17 13:22:59
    1、更改字符编码为UTF-8 2、将tab替换为4个空格 3、禁用MyEclipse内置的Tomcat,启用外置的Tomcat(测试环境:MyEclipse 6.5) 4、智能提示设置 5、导入、导出Preferences 1、更改字符编码
  • JAVA 乱码

    2011-12-29 21:44:00
    1. 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:40
    bootstrapTable搜索中文乱码问题 ...更改Tomcat的URI编码方式。 具体为:进入Tomcat目录,进入conf文件夹,打开server.xml文件(最好先进行一次备份),找到自己请求的连接头对应的代码,如: &lt;Connector ...
  • jenkins 可以通过subversion插件完成与svn的集成,本来这个插件的使用没有什么难度,但是在最近的项目中却遇到如下...第一个问题是由于编码问题,首先要更改容器的字符编码更改tomcat中server.xml的connector的...
  • 更改Tomcat平台中的字符编码---servlet.xml中的中的一个属性--------<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000"redirectPort="8443" URIEncoding="UTF-8" /> * 2. 通过String中的...
  • 前几天做的项目中,页面显示中文的时候出现了乱码,各种方法都试了一遍都不行(页面的字符编码改变,传到后台时进行转码以及更改tomcat的配置文件等等都不行),最后发现了一个问题就是用ajax往后台传递数据的时候post...

空空如也

空空如也

1 2 3
收藏数 42
精华内容 16
关键字:

更改tomcat字符编码