Non-latin character sets with Relatude

If you want to use content that uses non-latin character sets with Relatude, there are a few things to think about before you start your project.

The problem

If you've tried to use content with non-latin characters with Relatude before, you might have had problems. Relatude itself fully supports all character sets, but Relatude is just one of the components that affect the results. One of the main problems is that database servers are configured to store content in a specific character set. This is normally referred to as the collation of the database.

Different databases in the same database management system (DBMS) can have different collations, and each of the different DBMS have a default setting. Both MySQL and SQLServer that we usually use with Relatude uses a variant of latin1 as the default collation. This can lead to problems.

In fact it is even more complex than that. Most DBMSs have several different collation settings. SQL Server for example have collation settings on the server level, database level, column level and index level. 

If you have the wrong collation set, you can see a range of different errors and strange results. The most common is problems with storing characters from a character set not supported by the collation used. In MySQL for example, if you add content with characters not supported, only question marks are inserted into the database.  

The solution

First of all, we highly recommend that you configure the collation settings on the database before you install Relatude (columns and indexes will inherit collation settings from the database when Relatude creates the tables, columns and indexes). It can be very difficult to change collation afterwards.

MySQL

In MySQL you can set the correct collation by editing my.ini:

Under [MySql]:

default-character-set=utf8

Under [mysqld]:

character-set-server = utf8 
collation-server = utf8_general_ci 
init-connect = "SET NAMES utf8" 
skip-character-set-client-handshake

SQL Server

In SQL Server, you can set the collation for the whole server during installation(databases, columns and indexed will inherit that collation as default):

defaultcollation

To set it at the database level, select Properties on the database in Management Studio. You can then set the desired collation on the Options tab:

database_collation