XWiki Character Encoding Configuration

Here is below the configuration for UTF-8. Note that this is valid for XWiki 1.0 b5 and above. Easier configuration might be provided for upcoming releases.

XWiki encoding

Change the charset enconding in these XWiki files :

  • web.xml: locate the filter class com.xpn.xwiki.web.SetCharacterEncodingFilter and change it to UTF-8. It should look like this
   <filter-name>Set Character Encoding</filter-name>
  • xwiki.cfg : locate the line containing xwiki.encoding and change it to look like this
xwiki.encoding = UTF-8

HTML encoding

Change the HTML encoding in XWiki through Administration --> Preferences --> Presentation --> HTTP Meta information. Inside this textbox locate the Content-type meta tag and make it look like this, changing the encoding to UTF-8

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

Hibernate configuration

Add the following lines in the hibernate.cfg.xml file:

<property name="connection.useUnicode">true</property>
<property name="connection.characterEncoding">UTF-8</property>

MySQL configuration

It's common practice that the MySQL configuration file, in *nix systems is located in /etc/mysql/my.cnf

character-set-server = utf8
collation-server = utf8_general_ci

Java application server (Tomcat or Jetty for instance)



echo off
rem set LANG=fr_FR.ISO8859-1
set LANG=en_US.UTF-8
set JETTY_PORT=8080
java %JAVA_OPTS% -Djetty.port=%JETTY_PORT% -Djetty.home=%JETTY_HOME% -Dfile.encoding=UTF-8 -jar %JETTY_HOME%/start.jar

Instead of config system variable LANG you can use JVM properties 


in server startup script.


In order to enable UTF-8 in tomcat, you have to add


to each connector enabled/used in conf/server.xml. For example the non-SSL HTTP Connector should read:

<Connector port="8080" maxHttpHeaderSize="8192"
   maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
   enableLookups="false" redirectPort="8443" acceptCount="100"
   connectionTimeout="20000" disableUploadTimeout="true"

Failed to execute the [velocity] macro. Cause: [The execution of the [velocity] script macro is not allowed in [xwiki:Documentation.AdminGuide.Configuration.Encoding.WebHome]. Check the rights of its last author or the parameters if it's rendered from another script.]. Click on this message for details.

System config

Add the following variables to your system

LANG = en_US.UTF-8

Credits: http://www.nabble.com/Re%3A-problem-with-Chinese-p9547507.html


Get Connected