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>
   <filter-name>Set Character Encoding</filter-name>
   <filter-class>com.xpn.xwiki.web.SetCharacterEncodingFilter</filter-class>
   <init-param>
     <param-name>encoding</param-name>
     <param-value>UTF-8</param-value>
   </init-param>
</filter>
  • 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

[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
character-set-server = utf8
collation-server = utf8_general_ci

Java application server (Tomcat or Jetty for instance)

Check the following parameters for your Tomcat UTF-8 encoding (under Linux, check catalina.sh):--------------------------- 

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

 
Instead of config system variable LANG you can use JVM properties 

-Duser.language=en
-Duser.country=US

in server startup script.

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

Tags:
   

Get Connected