UTF-8 may not be correctly handled if using MySQL backend
|Reported by:||Owned by:||Jonas Borgström|
When using the MySQL backend with a server with no particular default character set configured, the database will be created with the character set created in the default of "latin1". This causes non-Latin1 UTF-8 support to silently fail, with the errors like the following logged (this example being Chinese in UTF-8):
/usr/lib/python2.4/site-packages/trac/db/util.py:50: Warning: Incorrect string value: '\xE9\x9B\x86\xE9\xAB\x94...' for column 'newvalue' at row 1 return self.cursor.execute(sql_escape_percent(sql), args)
The symptom of this problem is that all non-Latin1 (actually Windows 1252) characters will preview correctly but will be saved as question marks.
The scripts to initialize the database should probably explicitly specify the character set (perhaps one script for pre-4.1 MySQL servers and another for 4.1 and later), or this should be mentioned in the documentation, or both.