On this page:
The database used with Confluence should be configured to use the same character encoding as Confluence. The recommended encoding is Unicode UTF-8.
There are two places where character encoding may need to be configured:
The configuration details for each type of database are different. Some examples are below.
Append "useUnicode=true to your JDBC URL:
jdbc:mysql://hostname:port/database?autoReconnect=true&useUnicode=true&characterEncoding=utf8 |
If you are modifying
|
CREATE DATABASE confluence CHARACTER SET utf8 COLLATE utf8_bin; |
Server Characterset to utf8. This can be done by adding the following in my.ini for Windows or my.cnf for other OS. It has to be declared in the Server section, which is the section after [mysqld]:
[mysqld] default-character-set=utf8 |
status command to verify database character encoding information.
use confluence; show table status; |
utf8_bin (that is, case-sensitive) collation for all tables.ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin; |
Relevant MySQL manual for more detailed explanation:
CREATE DATABASE confluence WITH ENCODING 'UNICODE'; |
Or from the command-line:
$ createdb -E UNICODE confluence |
For more information see the PostgreSQL documentation.
Please note that international characters sets are only fully supported and functional when using PostgreSQL 8.1 and above under Microsoft Windows.
Please make sure you check the following to ensure proper handling of international characters in your database |
When PostgreSQL creates an initial database cluster, it sets certain important configuration options based on the host enviroment. The command responsible for creating the PostgreSQL environment initdb will check environment variables such as LC_CTYPE and LC_COLLATE (or the more general LC_ALL) for settings to use as database defaults related to international string handling. As such it is important to make sure that your PostgreSQL environment is configured correctly before you install Confluence.
To do this, connect to your PostgreSQL instance using pgsql and issue the following command:
SHOW LC_CTYPE; |
If LC_CTYPE is set to either "C" or "POSIX" then certain string functions such as converting to and from upper and lower case will not work correctly with international characters. Correct settings for this value take the form <LOCALE>.<ENCODING> (en_AU.UTF8 for example).
If your LC_CTYPE is incorrect please check the PostgreSQL documentation for information on configuring database localisation. It is not easy to change these settings with a database that already contains data.
|
Before proceeding with the following changes, please backup your database. |
This example shows how to change your database from latin1 to utf8.
mysqldump -p --default_character-set=latin1 -u <username> --skip-set-charset confluence > confluence_database.sqlconfluence_database.sql to confluence_utf8.sqlconfluence_utf8.sql in a text editor and change all character sets from 'latin1' to 'utf8'recode latin1..utf8 confluence_utf8.sql (the recode utility is described at http://directory.fsf.org/recode.html; it can actually be downloaded from http://recode.progiciels-bpi.ca/, and is available for Ubuntu via apt-get)In MySQL:
DROP DATABASE confluence;CREATE DATABASE confluence CHARACTER SET utf8 COLLATE utf8_bin;Finally, reimport the UTF-8 text file:
mysql -u <username> -p --default-character-set=utf8 --max_allowed_packet=64M confluence < /home/confluence/confluence_utf8.sqlTo support large imports, the parameter '--max_allowed_packet=64M' used above sets the maximum size of an SQL statement to be very large. In some circumstances, you may need to increase it further, especially if attachments are stored in the database.
See Troubleshooting Character Encodings for a number of tests you can run to ensure your database encoding is correct.
Character encodings in Confluence
Known Issues for MySQL