2011-09-27 92 views
5


我想知道如何设置Java环境以UTF-8编码。
基本上我有JSP页面显示一些阿拉伯文字,但他们似乎没有编码权。
当我在IDE中运行页面时,它可以正常工作,但在托管它的服务器上它只是简单地显示为问号。我只想知道如何设置java环境或apache tomcat来编码UTF-8。
任何帮助将不胜感激。设置Java环境(Apache Tomcat)编码UTF-8

+1

一个相关的帖子可能帮助http://stackoverflow.com/questions/138948/how-to-get-utf-8-working-in-java-webapps –

回答

23

你有不同的影响水平的一些常规设置:

(1)配置您JSP页面(上JSP页面的顶部地方)

<%@page pageEncoding="utf-8" %> 
显示utf-8的内容

(2)设置默认字符编码UTF-8(java system property

-Dfile.encoding="utf-8" 

(3)配置应用程序服务器以UTF-8来编码(在conf/server.xml)请求参数

<connector .... URIEncoding="utf-8" /> 

(4)Tell browser含量为UTF-8(代替HTML HEAD部)

<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' /> 
+0

这些步骤已经在旧的帖子中详细解释http://stackoverflow.com/问题/ 138948/how-to-get-utf-8-working-in-java-webapps –

+0

我在哪里应用点(2)? – Mush

+1

@Mush,作为启动服务器的参数,通常通过在启动脚本或系统变量('export JAVA_OPTS =“..”')中设置'JAVA_OPTS =“ - D ...” 。 –

0

在项目目录中: 你必须有一个文件夹,在这个foler名为“字体”复制阿拉伯字体,这将携带您的路径上的服务器也字符....

4

你必须编辑/config/web.xml 取消注释该过滤器:setCharacterEncodingFilter

<!-- A filter that sets character encoding that is used to decode --> 
<!-- parameters in a POST request --> 
<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> 

<!-- The mapping for the Set Character Encoding Filter --> 
<filter-mapping> 
    <filter-name>setCharacterEncodingFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping>