文章来源:http://www.blogjava.net/daning/archive/2007/03/23/105980.html
Tags: wikiwiki | xwikixwiki
2007-6-16 8:13:23 | 编辑
在XWiki中怎么正常显示中文字符
适用版本XWiki 1.0 beta5或者更高版本。在将来的版本中,也许可以更方便的实现这个配置。英文版配置说明参考http://www.xwiki.org/xwiki/bin/view/AdminGuide/Encoding
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文件。
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
# 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
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的邮件列表得到了大家很多非常有用的建议。非常感谢各位的帮助。总结一下,希望对大家有帮助。