2011-09-27 24 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>