以下以UTF-8配置。注意,这是针对XWiki1.0 b5或更高版本。即将发布的版本将提供更容易的配置。
XWiki编码
在以下XWiki文件修改字符编码:
- web.xml:找到过滤器类org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter并修改为UTF-8。如 <filter> <filter-name>Set Character Encoding </filter-name> <filter-class>org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter </filter-class> <init-param> <param-name>encoding </param-name> <param-value>UTF-8 </param-value> </init-param> </filter>
- xwiki.cfg :找到包含xwiki.encoding这行并修改,如: xwiki.encoding = UTF-8
HTML编码
通过XWiki后台管理页面修改HTML编码: Administration --> Look & Feel --> Page Elements --> HTTP Meta Info.
在旧版本的XWiki,HTTP Meta位于Administration --> Presentation
这里面的文本框定位Content-type meta标签并把编码修改为UTF-8,如:
<meta http-equiv= "Content-Type" content= "text/html; charset=UTF-8" />
如果有以下代码,则此步是没有必要的
<meta http-equiv= "Content-Type" content= "text/html; charset=$!xwiki.encoding" />
MySQL配置
一般来说修改MySQL配置文件, 在*nix这类系统位于$$/etc/mysql/my.cnf: 从MySQL 5.5.3开始'default-character-set=utf8'这个选项从[mysql]下面被弃用
[client] default-character-set=utf8 [mysqld] default-character-set=utf8 character-set-server = utf8 collation-server = utf8_bin
5.5.3之后
[client] default-character-set=utf8 [mysqld] character-set-server = utf8 collation-server = utf8_bin
Servlet容器
Jetty
echo off rem set LANG=fr_FR.ISO8859-1 set LANG=en_US.UTF-8 set JETTY_PORT=8080 set JETTY_HOME=. java %JAVA_OPTS% -Djetty.port=%JETTY_PORT% -Djetty.home=%JETTY_HOME% -Dfile.encoding=UTF-8 -jar %JETTY_HOME%/start.jar
除了配置系统变量LANG,也可以使用JVM属性
-Duser.language=en -Duser.country=US
在服务器启动脚本
Tomcat
为了在tomcat设置UTF-8编码,需要添加:
URIEncoding="UTF-8"
修改conf/server.xml文件。如果是non-SSL HTTP Connector方式,则修改:
<Connector port= "8080" maxHttpHeaderSize= "8192" maxThreads= "150" minSpareThreads= "25" maxSpareThreads= "75" enableLookups= "false" redirectPort= "8443" acceptCount= "100" connectionTimeout= "20000" disableUploadTimeout= "true" URIEncoding= "UTF-8" />
如果你使用AJP连接Tomcat和httpd,一定要添加这个属性到AJP connector
Glassfish
为了XWiki在Glassfish运行中使用的是UTF-8编码,需要重新创建xwiki-enterprise.war文件以及修改glassfish配置文件。首先,在管理页面 Domain => General => Locale输入en_US.UTF-8.
现在,你将需要在war中对上述所有需要修改的文件进行修改,创建一个新的warfile,并部署到GlassFish。由于GlassFish在deploy app时,如果是从一个目录deploy,必须redeploy或者删除app再重建才能重新加载web.xml。所以,你需要部署一个WAR文件里面包含修改后的web.xml。
创建一个临时目录编辑war文件:
mkdir xwikitmp
解压warfile:
cd xwikitemp;jar xvf ../xwiki-enterprise-web-1.5.war
编辑这篇文章开头提到的文件:
- wiki.cfg
- web.xml
- hibernate.cfg.xml
现在,创建一个新的warfile包含了所有的修改:
jar cvf ../xwiki-enterprise-web-local-1.5.war .
现在可以把新的.war部署到Glassfish
系统配置
以下变量需要添加到你的操作系统:
LANG = en_US.UTF-8
Credits
OpenOffice导入
如果OpenOffice导入时发现出现问号或是HTML实体,那么需要在用户配置文件下编辑registrymodifications.xcu:
<item oor:path= "/org.openoffice.Office.Common/Filter/HTML/Export" ><prop oor:name= "Encoding" oor:op= "fuse" ><value>76 </value></prop></item>
Credits