Java 如何设置Tomcat';什么是编码类型?

Java 如何设置Tomcat';什么是编码类型?,java,eclipse,tomcat7,Java,Eclipse,Tomcat7,实际上,我不确定这是否是Tomcat造成的问题。我必须处理一些中文单词(UTF-8编码)。当我在eclipse上用“Run on server”调试程序时,它将返回预期结果。但当我将其导出到war包并在Tomcat上运行时,所有中文单词都将以GBK显示,无法读取。我不知道问题出在哪里。有人能告诉我如何解决吗?您需要做一些更改,以使UTF-8成为默认编码字符: 在server.xml中的连接器上设置URIEncoding=“UTF-8” 使用默认编码设置为UTF-8的字符编码筛选器 更改所有JS

实际上,我不确定这是否是Tomcat造成的问题。我必须处理一些中文单词(UTF-8编码)。当我在eclipse上用“Run on server”调试程序时,它将返回预期结果。但当我将其导出到war包并在Tomcat上运行时,所有中文单词都将以GBK显示,无法读取。我不知道问题出在哪里。有人能告诉我如何解决吗?

您需要做一些更改,以使UTF-8成为默认编码字符:

  • 在server.xml中的连接器上设置URIEncoding=“UTF-8”
  • 使用默认编码设置为UTF-8的字符编码筛选器
  • 更改所有JSP以在其contentType中包含字符集名称。 例如,对于常用的JSP页面使用
    ,对于XML语法(也称为JSP文档)的页面使用
  • 将所有servlet更改为将响应的内容类型设置为UTF-8,并将内容类型中的字符集名称包括为UTF-8。 使用
    response.setContentType(“text/html;charset=UTF-8”)
    response.setCharacterEncoding(“UTF-8”)
  • 将您使用的任何内容生成库(Velocity、Freemarker等)更改为使用UTF-8,并在它们生成的响应的内容类型中指定UTF-8
  • 在您的字符编码过滤器或jsp页面有机会将编码设置为UTF-8之前,禁用可能读取请求参数的任何阀或过滤器

有关更多信息,请参见

您需要进行一些更改,以使UTF-8成为默认编码字符:

  • 在server.xml中的连接器上设置URIEncoding=“UTF-8”
  • 使用默认编码设置为UTF-8的字符编码筛选器
  • 更改所有JSP以在其contentType中包含字符集名称。 例如,对于常用的JSP页面使用
    ,对于XML语法(也称为JSP文档)的页面使用
  • 将所有servlet更改为将响应的内容类型设置为UTF-8,并将内容类型中的字符集名称包括为UTF-8。 使用
    response.setContentType(“text/html;charset=UTF-8”)
    response.setCharacterEncoding(“UTF-8”)
  • 将您使用的任何内容生成库(Velocity、Freemarker等)更改为使用UTF-8,并在它们生成的响应的内容类型中指定UTF-8
  • 在您的字符编码过滤器或jsp页面有机会将编码设置为UTF-8之前,禁用可能读取请求参数的任何阀或过滤器

有关更多信息,请参见

除了elkorchi的答案外,还需要在web.xml中添加过滤器

<filter>
    <filter-name>charsetFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>charsetFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

字符集过滤器
org.springframework.web.filter.CharacterEncodingFilter
编码
UTF-8
字符集过滤器
/*
如果您使用spring框架,上面的方法可以工作,否则您需要像这样编写自己的过滤器,并相应地更改xml配置中的类


有关详细信息,请参见博客:

除了elkorchi的答案,您还需要在web.xml中添加过滤器

<filter>
    <filter-name>charsetFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>charsetFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

字符集过滤器
org.springframework.web.filter.CharacterEncodingFilter
编码
UTF-8
字符集过滤器
/*
如果您使用spring框架,上面的方法可以工作,否则您需要像这样编写自己的过滤器,并相应地更改xml配置中的类


有关详细信息,请参阅博客:

这并不像将Tomcat设置为任何字符编码那样简单。您的webapp必须以这样一种方式编写:它使用适当的字符编码读取和写入文本。很可能,在webapp中的某个地方,您依赖默认的字符编码,而不是显式地指定它。默认的字符编码在不同的操作系统上是不同的(例如Windows上的Cp1252,Linux上的UTF-8),因此您的Web应用程序在不同的平台上可能表现不同。这并不像将Tomcat设置为任何字符编码那么简单。您的webapp必须以这样一种方式编写:它使用适当的字符编码读取和写入文本。很可能,在webapp中的某个地方,您依赖默认的字符编码,而不是显式地指定它。默认的字符编码在不同的操作系统上是不同的(例如Windows上的Cp1252,Linux上的UTF-8),因此您的webapp在不同的平台上可能表现不同。