1. 程式人生 > >[修改版]在XWiki中怎麼正常顯示中文字元

[修改版]在XWiki中怎麼正常顯示中文字元

適用版本XWiki 1.0 beta5或者更高版本。在將來的版本中,也許可以更方便的實現這個配置。英文版配置說明參考

XWiki 的預設編碼是ISO-8859-1。雖然可以正常顯示中文,但是在XWiki Text Edit中,中文被顯示為數字編碼。要將預設編碼修改為UTF-8,才能正常顯示中文。但是,有的時候修改不當,在進行roll-back操作的時候,中 文顯示為問號,形如'??????'。

修改XWiki配置檔案編碼

在XWiki的根目錄下的WEB-INF資料夾裡,修改如下檔案中和編碼相關的內容。

  • web.xml: encoding = UTF-8
  • xwiki.cfg: xwiki.encoding = UTF-8
  • (可選)velocity.properties: input.encoding=UTF-8
  • (可選)velocity.properties: output.encoding=UTF-8

修改資料庫編碼

  • 如果使用的是XWiki自帶的資料庫hsqldb,則不需要修改。
  • 如果使用的是MySQL資料庫,找到其配置檔案(my.ini如果是windows,在linux下是/etc/mysql/my.cnf),修改在相應的地方新增如下配置項:[client]
    default-character-set=utf8
    [mysqld]
    default-character-set=utf8
    character
    -set-server = utf8
    collation
    -server = utf8_general_ci
  • 如果是其他資料庫,只需要修改其配置檔案,使其資料庫編碼和JDBC連結編碼都為UTF-8即可。詳細可參見相應資料庫幫助文件。

修改Java應用伺服器編碼

  • 如果使用Jetty或者早起版本的Tomcat作為伺服器,需要修改啟動的指令碼檔案。在windows下都是.bat或者.sh檔案。
如果是Tomcat,則修改根目錄下bin資料夾下面配置檔案(windows下是start.bat,linux下是catalina.sh),如下:
export JAVA_HOME="/usr/lib/jvm/java-1.5.0-sun"

# Set juli LogManager
if it is present
if [ -r "$CATALINA_HOME"/bin/tomcat-juli.jar ]; then
JAVA_OPTS
="$JAVA_OPTS "-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager""-Djava.util.logging.config.file="$CATALINA_BASE/conf/logging.properties "-Dfile.encoding=UTF-8
fi

在XWiki自帶的Jetty的start_xwiki.bat,修改如下:
echo off
set LANG
=en_US.UTF-8
set JETTY_PORT
=8080
set JETTY_HOME
=.
java
%JAVA_OPTS%-Dfile.encoding=UTF-8-Djetty.port=%JETTY_PORT%-Djetty.home=%JETTY_HOME%-jar %JETTY_HOME%/start.jar
  • 如果使用的新版的Tomcat,在bin下面沒有.bat檔案,只有tomcat5.exe檔案。那麼在執行tomcat5.exe只有,在系統托盤的圖示上單擊右鍵,選擇Configure。選擇Java標籤,在java option中新增'-Dfile.encoding=UTF-8'。如下圖所示:
  • 如果是其他的應用伺服器,只要修改相應的配置檔案即可。可以查閱相應幫助文件。
  • 有時候會有中文url不能正常訪問的問題,那就需要修改$TOMCAT_HOME/conf/server.xml檔案,在每一個Connector標籤中加入屬性"URIEncoding="UTF-8"。修改後的程式碼形如:<Connector port="8080" axHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true"
    URIEncoding
    ="UTF-8"/>

hibernate配置檔案編碼(可選)

在XWiki的根目錄下WEB-INF資料夾下的hibernate.cfg.xml檔案中如下程式碼:<property name="connection.url">jdbc:mysql://localhost:3306/xwiki?useUnicode=true&characterEncoding=utf8&useServerPrepStmts=false</property>

感謝

在XWiki的郵件列表得到了大家很多非常有用的建議。非常感謝各位的幫助。總結一下,希望對大家有幫助。