精华内容
下载资源
问答
  • 当你在web.xml中配置字符编码设置,可是请求url中的中文字符仍然乱码,很可能的原因就是Tomcat字符编码配置问题,具体的解决办法如下。默认编码如果没有指定字符编码,Servlet规范规定使用”ISO-8859-1″作为...

    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服务器的server.xml 中的connector URIEncoding This specifies the character encoding used to decode the URI bytes, after %xx decoding the URL. If not specified, ISO-8859-1 will be used. ...

    对于客户端发来的汉字,我们一般需要转码:

    ------------------------------------------------------------------------------------

    request.setCharacterEncoding("UTF-8");//这样设置客户机发来数据文字格式只对post方式有效

    String line = request.getParameter("username");

    System.out.println(line);

    -------------------------------------------------------------

    String line = request.getParameter("username");

    line=(new String(line.getBytes("iso8859-1"),"UTF-8"));//对于get方式,只能这样了。

    -------------------------------------------------------------------------------------

    有没有办法不用这么麻烦?有,配置Tomcat服务器的server.xml 中的connector

    URIEncoding

    This specifies the character encoding used to decode the URI bytes, after %xx decoding the URL. If not specified, ISO-8859-1 will be used.

    意思是如果不配置这个URIEncoding 那么采用默认的ISO-8859-1

    connectionTimeout="20000"

    redirectPort="8443" URIEncoding="UTF-8"/>

    这样配置即可。

    还有一个方法:

    useBodyEncodingForURI

    This specifies if the encoding specified in contentType should be used for URI query parameters, instead of using the URIEncoding. This setting is present for compatibility with Tomcat 4.1.x, where the encoding specified in the contentType, or explicitly set using Request.setCharacterEncoding method was also used for the parameters from the URL. The default value is false.

    connectionTimeout="20000"

    redirectPort="8443" useBodyEncodingForURI="true"/>

    这样一改,那么:

    request.setCharacterEncoding("UTF-8");//这样设置客户机发来数据文字格式就不只对post方式有效了,对get方式也有效。

    Tomcat 的log乱码解决方式:

    catalina.bat 中找到这一句

    set LOGGING_CONFIG=-Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties"      在后边加上:-Dfile.encoding="UTF-8"

    展开全文
  • 问题:最近在部署项目的时候出现数据乱码的情况,经过一番查看项目都是用的UTF-8编码格式,...解决办法:Linux环境下如果使用的UTF-8编码,可以不用修改,因为Linux默认为UTF-8war包部署在Tomcat修改jvm编码Linux环...

    问题:

    最近在部署项目的时候出现数据乱码的情况,经过一番查看项目都是用的UTF-8编码格式,数据也是,但是经过调用接口传给对方就乱码了。

    由于是部署在Windows环境下,Windows默认编码GBK,这就导致了jvm运行时编码不一致的问题,修改也很容易。

    解决办法:

    Linux环境下如果使用的UTF-8编码,可以不用修改,因为Linux默认为UTF-8

    war包部署在Tomcat

    修改jvm编码

    Linux环境

    在catalina.sh配置

    JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=utf-8"

    由于Windows环境下默认的编码格式为GBK,所以要修改Tomcat运行时编码格式。

    Windows环境

    在catalina.bat配置

    set JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF-8

    如果是jar包部署,只需要在启动命令加入jvm参数即可。

    jar包部署

    启动命令加入jvm参数

    java -Dfile.encoding=UTF-8 -jar xxx.jar

    总结

    以上所述是小编给大家介绍的修改Tomcat运行时jvm编码问题,希望对大家有所帮助!

    展开全文
  • tomcat编码设置tomcat中文问题的解决第一,存文件必须以一种编码存;读文件也必须以一种编码读,如不特别设置,去系统默认的编码,中文windows为GBK编码。从.java->.class过程是,先编写.java文件并按莫种编码...

    tomcat的编码设置

    tomcat中文问题的解决

    第一,存文件必须以一种编码存;读文件也必须以一种编码读,如不特别设置,去系统默认的编码,中文windows为GBK编码。

    从.java->.class过程是,先编写.java文件并按莫种编码方式保存,然后用javac方法编译此文件,注意如.java没按系统默认编码保存则要带encoding参数指明实际编码,否则出错,生成的.class文件存为系统默认编码。

    从.jsp->.java->.class,先存为某种编码的.jsp文件,然后tomcat根据pageEncoding读取并转化为servlet存为系统默认编码,然后同上面.java->.class过程。

    第二,IDE的encoding为对系统下文件打开的解码方式或保存的编码方式。特例:如果.jsp文件有,则eclipse会自动存为UTF-8方式,不管eclipse的encoding是什么,这也是eclipse的聪明之处。

    第三,

    pageEncoding="UTF-8"表示此文件的编码方式,必须与此文件存储方式一致(所以eclipse会首选根据它来存文件),tomcat根据这个来读此.jsp文件并编译为servlet。

    contentType="text/html;charset=UTF-8"表示当浏览器得到此文件时以什么方式解码。例如:

    test

    我是个好人

    会产生乱码,因为存为UTF-8的文件被解码为iso8859-1,这样 如有中文肯定出乱码。

    至此,页面应为:

    中文问题

    第四,

    request.setCharacterEncoding("UTF-8")是把提交内容的字符集设为UTF-8

    response.setCharacterEncoding("UTF-8")可以把页面中的换为charset=UTF-8,是给告诉浏览器我这个文件的编码方式。

    第五,表单提交:无论何种表单提交都可以在后台的java文件中通过String des = new String(s.getBytes("iso8859-1"),"UTF-8");来转换成你想要的UTF-8编码方式。但如果每处都加词句太麻烦,故分post和get两种方式区分提交(tomcat5以后分开处理,之前处理方式一样,即都可以用request.setCharacterEncoding("UTF-8")方法处理,不过tomcat5以后get提交方法用此语句无效)。

    1,post提交的数据:

    程序加上org.springframework.web.filter.CharacterEncodingFilter过滤器.

    encodingFilter

    org.springframework.web.filter.CharacterEncodingFilter

    encoding

    UTF8

    forceEncoding

    true

    encodingFilter

    *.html

    encodingFilter

    *.jsp

    因为规范要求浏览器提交数据都要用utf8编码,所以这里设置编码方式为UTF8.

    特别注意:

    a,这个过滤器只是简单的调用:request.setCharacterEncoding(this.encoding);

    在这个语句之前不能调用任何的request.getParameter()方法,否则会设置tomcat的缺省字符集为"ISO-8859-1",并且使setCharacterEncoding的调用失效.所以在这个过滤器之前的过滤器中不能有对getParameter这类方法的调用,比较安全的做法就是把这个过滤器尽量靠前放.

    b,在server.xml中不能加上

    这个value也设置tomcat的缺省字符集为"ISO-8859-1",使setCharacterEncoding的调用失效.可能其他的value也有这个问题,我没有测试过.

    如果要观察http请求参数,可以考虑用过滤器或者其他工具,例如ethereal([url]http://www.ethereal.com/[/url])

    2,get提交的数据:

    两种情况:

    a,如果从地址栏直接输入汉字,则一般编码为"GBK",需要用

    new String(request.getParameter("something").getBytes("ISO-8859-1"),"GBK")

    取出

    b,如果是页面超连接连接中带的汉字,则编码根据页面编码的不同而不同,如果页面的

    content="text/html; charset=utf-8",则在tomcat/conf/server.xml中的配置文件中:

    maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

    enableLookups="false" redirectPort="8443" acceptCount="100"

    debug="0" connectionTimeout="20000" useBodyEncodingForURI="true"

    disableUploadTimeout="true" />

    加上:useBodyEncodingForURI="true"即可正常使用getParameter取出正确内容.

    如果content="text/html; charset=GBK",需用

    new String(request.getParameter("something").getBytes("ISO-8859-1"),"GBK")

    取出,其他情况类似.

    总结:

    1,所有页面使用utf8编码,

    2,服务器加上过滤器,

    3,server.xml中不要使用

    4,server.xml文件加上useBodyEncodingForURI="true"

    这样应该可以搞定大多数前台的中文问题.至于地址栏输入中文,不支持也罢,一般的程序很少要求

    从这里输入.

    第六,连接数据库

    1、mysql配置文件:

    修改mysql在windows\my.ini里default-character-set=utf-8

    2、mysql里数据库和表也都设为utf8_unicode_ci

    3、数据库连结:jdbc:mysql://localhost/mydb?useUnicode=true&characterEncoding=utf-8

    注意,关键就在于此:此句中间是'&'不是'&'这是因为数据库连结时,在.jsp和.java文件中应该用&号,而XML文件中需要用&

    对于Web容器来说,如果你不设置,默认是ISO8859-1

    String des = new String(s.getBytes("iso8859-1"),"UTF-8");都可以使用这个 不论哪里,有乱码就是用

    展开全文
  • 转自:http://blog.sina.com.cn/s/blog_7c76d63901018lyt.html方法一:推荐,不会影响到其它项目见我的另一篇博客:http://www.cnblogs.com/x_wukong/p/3292664.html修改方法:修改tomcat下的conf/server.xml文件,...
  • tomcat编码乱码问题

    2021-01-11 23:40:11
    最近又碰到了中文乱码问题,这里我没有把数据库牵扯进来,先说下我的环境,servlet容器使用Tomcat6.0,浏览器FireFox3.0、IE6,涉及字符编码设置的地方我的思路就是编码的地方都统一使用UTF-8,具体配置如下:1....
  • 1可以通过代码确认当前jvm运行的编码System.getProperty("file.encoding")此参数是在jvm启动的时候就已经设置完成。如果没有手动设置file.encoding,会根据当前系统的...注意:在Tomcat启动完成后,在程序中通过设置...
  • 什么是字符集在介绍字符集之前,我们先了解下为什么要有字符集。我们在计算机屏幕上看到的是实体化的文字,而在计算机存储介质中存放的实际是二进制...简单的说字符集就规定了某个文字对应的二进制数字存放方式(编码...
  • Tomcat 配置文件详解

    2021-06-03 13:18:10
    Tomcat配置文件由4个 xml 文件构成,context.xml、web.xml、server.xml、tomcat-users.xml 这4个文件。每个文件都有自己的功能与配置方法,下列将逐一介绍这几个文件的配置: 一、context.xml 文件 Context.xml...
  • tomcat设置编码格式utf8

    2020-12-29 16:48:17
    一:form在前台以post方式提交数据:浏览器将数据(假设...数据到达服务器后,数据(98 99)要封装到request中,在servlet中调用Request的getParameter方法返回的是字符串(“中国”),方法内部拿到数字后要转成字符,一...
  • 传参数的时候又没有对“|”进行url编码这个时候他们用这个url访问我们会导致服务器一致报400的错误 VM2418 nkworkflowx.runtime.js:836 GET ...
  • 一、配置系统管理(Admin Web Application)大多数商业化的J2EE服务器都提供一个功能强大的管理界面,且大都采用易于理解的Web应用界面。Tomcat按照自己的方式,同样提供一个成熟的管理工具,并且丝毫不逊于那些商业化...
  • tomcat常用配置详解和优化方法参考:...
  • 我们知道,通常情况下,我们会将java文件的字符修改成utf-8,这样,理所当然地就认为:JVM在加载class的时候,自然是按照utf-8进行解析的。事实并非如此:JVM加载class文件默认采用的字符集,是由操作系统来决定的...
  • 一、Spring MVC字符编码配置java Web项目添加Spring支持后,可使用Spring自带的字符编码过滤器。源码在spring-web-4.1.0.RELEASE.jar包下的org.springframework.web.filter目录的CharacterEncodingFilter.java。在...
  • 问题描述: idea导入maven项目,启动tomcat时报错 java: 非法字符: ‘\ufeff’ # 解决方案: 编码不正确 修改字符编码
  • 1、修改CMD窗口字符集 查看当前的字符集 默认代码页是:936 中国 - 简体中文(GB2312) 修改cmd字符集 使用命令:chcp 代码页,代码页对照下表 代码页 国家(地区)或语言 437 美国 708 阿拉伯文(ASMO 708) ...
  • Tomcat配置JNDI Tomcat配置JNDI主要是配置server.xml和context.xml,主要有三种方式配置,可以参考文章tomcat下jndi的三种配置方式 ,本文采用他的全局配置方式,但是有点区别,笔者应用于真正的生产环境既是此种...
  • Tomcat配置及优化方案

    2021-01-30 11:13:31
    Tomcat 配置详解/优化方案作者:-飞奔的小蜗牛-链接:https://blog.csdn.net/cicada688/article/details/14451541来源:CSDN著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。Service.xml...
  • 问题 开始于 使用mysql命令插入中文数据插不进去ERROR1366...开始查看有关字符集的问题。如果使用 set names 'gbk';或者 set character_set_database 'utf8'; 这样的命令来设置字符集的话,只是当前设置生效,下次...
  • 一、初级解决方法通过一番检索后,许多人采用了如下办法,首先对取得字符串按照 iso8859-1 进行解码转换,然后再按照 gb2312 进行编码,最后得到正确的内容。示例代码如下:String para = new String( request....
  • Java字符编码设置总结

    千次阅读 2021-02-13 00:04:59
    1、eclipse workspace中的字符编码:windows->Preferences->general->Workspace以后新建立工程其属性对话框中的Text file encoding即为UTF-8,这个也是安装完Eclipse之后应该立刻做的第一件事,但是这种...
  • Java字符编码

    2021-02-12 15:38:18
    1.概述在下面的描述中,将以"中文"两个字为例,经查表可以知道其GB2312编码是"d6d0 cec4",Unicode编码为"4e2d 6587",UTF编码就是"e4b8ad e69687"。注意,这两个字没有iso8859-1编码,但可以用iso8859-1编码来"表示...
  • 设置tomcat生成的日志文件编码utf-8,修改conf/logging.properties,添加编码设置1catalina.org.apache.juli.AsyncFileHandler.level = FINE1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base...
  • java转换字符编码格式 (解码错误,重新解码)字符集概念:规定了某个文字对应的二进制数字存放方式(编码)和某串二进制数值代表了哪个文字(解码)的转换关系。我们在计算机屏幕上看到的是实体化的文字,而在计算机存储...
  • tomcat7配置属性API

    2021-03-09 21:48:03
     您可以通过设置发送文件关闭useSendfile连接器的属性,如下面介绍,或更改配置发送文件使用阈值DefaultServlet在默认conf/web.xml或web.xml的Web应用程序。 compressionMinSize 如果压缩被设定为“on”,那么此...
  • 4.配置虚拟主机(Virtual Hosts)关于server.xml中“Host”这个元素,只有在你设置虚拟主机的才需要修改。虚拟主机是一种在一个web服务器上服务多个域名的机制,对每个域名而言,都好象独享了整个主机。实际上,...
  • characterEncoding=gbk:字符编码方式。 3、创建数据库的连接 •要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象, 该对象就代表一个数据库的连接。 •使用DriverManager的getConnectin(String...
  • 常用配置详解 1 目录结构 /bin:脚本文件目录。 /common/lib:存放所有web项目都可以访问的公共jar包(使用Common类加载器加载)。 /conf:存放配置文件,最重要的是server.xml。 /logs:存放日志文件。 /server/...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 41,453
精华内容 16,581
关键字:

tomcat配置修改编码字符