Wiki source code of Encoding

Version 21.3 by Vincent Massol on 2018/12/17

Hide last authors
Guillaume Fenollar 13.1 1 {{box cssClass="floatinginfobox" title="**Contents**"}}
2 {{toc/}}
3 {{/box}}
slauriere 1.1 4
Manuel Smeria 15.2 5 Below you have 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.
slauriere 1.1 6
Silvia Macovei 12.2 7 = XWiki encoding =
slauriere 1.1 8
slauriere 20.1 9 Change the charset encoding in these XWiki files:
bitman09 1.8 10
Jean SIMARD 17.1 11 * **web.xml**: locate the filter class ##org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter## and change it to UTF-8. It should look like this:(((
Silvia Macovei 12.1 12 {{code language="xml"}}
bitman09 1.10 13 <filter>
bitman09 1.9 14 <filter-name>Set Character Encoding</filter-name>
Jean SIMARD 17.1 15 <filter-class>org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter</filter-class>
bitman09 1.9 16 <init-param>
17 <param-name>encoding</param-name>
18 <param-value>UTF-8</param-value>
19 </init-param>
bitman09 1.10 20 </filter>
Silvia Macovei 12.1 21 {{/code}}
Manuel Smeria 15.2 22 )))
Marius Dumitru Florea 16.1 23 * **xwiki.cfg** : locate the line containing ##xwiki.encoding## and change it to look like this:(((
Silvia Macovei 12.1 24 {{code}}
bitman09 1.9 25 xwiki.encoding = UTF-8
Silvia Macovei 12.1 26 {{/code}}
Manuel Smeria 15.2 27 )))
bitman09 1.9 28
Silvia Macovei 12.2 29 = HTML encoding =
bitman09 1.9 30
Marius Dumitru Florea 16.1 31 Change the HTML encoding in XWiki through Administration ~-~-> Look & Feel ~-~-> Page Elements ~-~-> HTTP Meta Info.
LuisArias 11.1 32
Silvia Macovei 12.1 33 {{warning}}
Marius Dumitru Florea 16.1 34 The HTTP Meta Info section was located in Administration ~--> Presentation in older versions of XWiki.
Silvia Macovei 12.1 35 {{/warning}}
LuisArias 11.1 36
Silvia Macovei 12.1 37 Inside this textbox locate the **Content-type** meta tag and make it look like this, changing the encoding to UTF-8
38
39 {{code language="xml"}}
bitman09 1.14 40 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Silvia Macovei 12.1 41 {{/code}}
42
43 {{warning}}
44 This step is not needed if you have the following. Instead that line can be left alone.
45 {{/warning}}
46
47 {{code language="xml"}}
LuisArias 11.1 48 <meta http-equiv="Content-Type" content="text/html; charset=$!xwiki.encoding" />
Silvia Macovei 12.1 49 {{/code}}
bitman09 1.10 50
slauriere 20.1 51 = Database configuration =
slauriere 1.1 52
slauriere 20.1 53 == MySQL ==
54
Vincent Massol 21.3 55 It's common practice that the MySQL configuration file, in *nix systems is located in ##$$/etc/mysql/my.cnf##.
Silvia Macovei 12.1 56
Vincent Massol 21.1 57 === MySQL < 5.5.3 ===
58
Silvia Macovei 12.1 59 {{code}}
slauriere 1.1 60 [client]
61 default-character-set=utf8
62 [mysqld]
63 default-character-set=utf8
64 character-set-server = utf8
Guillaume Fenollar 13.1 65 collation-server = utf8_bin
Silvia Macovei 12.1 66 {{/code}}
slauriere 1.1 67
Vincent Massol 21.2 68 === MySQL >~= 5.5.3 ===
KaiSen 16.2 69
Vincent Massol 21.1 70 Starting with MySQL 5.5.3 the option ##default-character-set=utf8## is deprecated under ##[mysql]##.
71
KaiSen 16.2 72 {{code}}
73 [client]
74 default-character-set=utf8
75 [mysqld]
76 character-set-server = utf8
77 collation-server = utf8_bin
78 {{/code}}
79
Silvia Macovei 12.2 80 = Servlet Container =
slauriere 1.1 81
Silvia Macovei 12.2 82 == Jetty ==
Silvia Macovei 12.1 83
Marius Dumitru Florea 16.1 84 {{code}}
85 echo off
slauriere 1.1 86 rem set LANG=fr_FR.ISO8859-1
87 set LANG=en_US.UTF-8
88 set JETTY_PORT=8080
89 set JETTY_HOME=.
Manuel Smeria 15.2 90 java %JAVA_OPTS% -Djetty.port=%JETTY_PORT% -Djetty.home=%JETTY_HOME% -Dfile.encoding=UTF-8 -jar %JETTY_HOME%/start.jar
91 {{/code}}
machac 1.4 92
Manuel Smeria 15.2 93 Instead of the config system variable LANG you can use JVM properties.
94
Silvia Macovei 12.1 95 {{code}}
machac 1.4 96 -Duser.language=en
97 -Duser.country=US
Silvia Macovei 12.1 98 {{/code}}
machac 1.4 99
100 in server startup script.
101
Silvia Macovei 12.2 102 == Tomcat ==
aanno 3.1 103
104 In order to enable UTF-8 in tomcat, you have to add
105
Silvia Macovei 12.1 106 {{code}}
Sergiu Dumitriu 6.1 107 URIEncoding="UTF-8"
Silvia Macovei 12.1 108 {{/code}}
aanno 3.1 109
Manuel Smeria 15.2 110 to each connector enabled/used in ##conf/server.xml##. For example the non-SSL HTTP Connector should read:
aanno 3.1 111
Silvia Macovei 12.1 112 {{code language="xml"}}
aanno 3.1 113 <Connector port="8080" maxHttpHeaderSize="8192"
114 maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
115 enableLookups="false" redirectPort="8443" acceptCount="100"
116 connectionTimeout="20000" disableUploadTimeout="true"
Sergiu Dumitriu 6.1 117 URIEncoding="UTF-8"/>
Silvia Macovei 12.1 118 {{/code}}
aanno 3.1 119
Silvia Macovei 12.1 120 {{warning}}
121 In case you're using AJP to connect Tomcat and httpd, make sure you add this attribute to the AJP connector.
122 {{/warning}}
cypromis 9.1 123
Manuel Smeria 15.2 124 == [[Glassfish>>http://glassfish.java.net/]] ==
cypromis 9.1 125
Vincent Massol 19.5 126 To run XWiki with UTF-8 in Glassfish you will need to recreate the XWiki WAR file and do a change to the glassfish config. First, in the Administration GUI under Domain => General => Locale enter **en_US.UTF-8**.
cypromis 9.1 127
Manuel Smeria 15.2 128 Now you will need to add all the aforementioned changes from this document to the files in the war file, create a new warfile, and deploy that one to your glassfish installation. This is required due to the fact that Glassfish will not accept changes to a deployed web.xml file. So you need to deploy a ready changed **web.xml** file inside your war file because all subsequent changes to the deployed **web.xml** file in the filesystem are totally ignored.
Silvia Macovei 12.1 129
Manuel Smeria 15.2 130 Create a new directory that we will use as a temporary place to edit our war file:
Silvia Macovei 12.1 131
132 {{code}}
133 mkdir xwikitmp
134 {{/code}}
135
Vincent Massol 19.6 136 Unpack the warfile (replace ##<suffix>## with the proper name for the version of XWiki you're using):
Silvia Macovei 12.1 137
138 {{code}}
Vincent Massol 19.6 139 cd xwikitemp;jar xvf ../xwiki-<suffix>.war
Silvia Macovei 12.1 140 {{/code}}
141
cypromis 9.1 142 Edit the files as mentioned in the beginning of this article:
Silvia Macovei 12.1 143
cypromis 9.1 144 * wiki.cfg
145 * web.xml
146 * hibernate.cfg.xml
Silvia Macovei 12.1 147
Manuel Smeria 15.2 148 Now let's create a new warfile which contains all the changes:
cypromis 9.1 149
Silvia Macovei 12.1 150 {{code}}
Vincent Massol 19.7 151 jar cvf ../xwiki-<suffix>.war .
Silvia Macovei 12.1 152 {{/code}}
153
cypromis 9.1 154 Now you can deploy your new .war file to Glassfish and it will have all the changes in it and wll be correctly deployed.
155
slauriere 20.1 156 = Web server =
157
158 == Apache ==
159
160 Make sure that the Apache configuration file ##httpd.conf## contains the following line:
161
162 {{code}}
163 AddDefaultCharset UTF-8
164 {{/code}}
165
Silvia Macovei 12.2 166 = System config =
cypromis 9.1 167
Manuel Smeria 15.2 168 Add the following variables to your system:
slauriere 1.1 169
Silvia Macovei 12.1 170 {{code}}
WilliamLesguillier 2.1 171 LANG = en_US.UTF-8
Silvia Macovei 12.1 172 {{/code}}
slauriere 1.1 173
Manuel Smeria 15.2 174 [[Credits>>http://markmail.org/message/qitvntzz7cwpyo2w]]
petskratt 15.1 175
176 = OpenOffice import =
177
Manuel Smeria 15.2 178 If OpenOffice import turns characters into question marks or HTML Entity you need to edit **registrymodifications.xcu** located in user profile used by the OO server by adding:
petskratt 15.1 179
180 {{code}}
181 <item
182 oor:path="/org.openoffice.Office.Common/Filter/HTML/Export"><prop
183 oor:name="Encoding" oor:op="fuse"><value>76</value></prop></item>
184 {{/code}}
185
Manuel Smeria 15.2 186 [[Credits>>http://lists.xwiki.org/pipermail/users/2011-November/021004.html]]
slauriere 20.1 187
188 = Tools =
189
190 * The [[Admin Tools extension>>extensions:Extension.Admin Tools Application]] can be helpful to identify the values of the XWiki encoding configuration parameters on a running server.

Get Connected