- 1. Charset for messages
- Code: Select all
name=English
charset=UTF-8
On the 'configuration page', check these settings:
- Charset for HTML messages: UTF-8
- Charset for Text messages: UTF-8
2. Charset of public pages
The charset of public pages can be set in the language file you configured in config.php (e.g. $language_module = "your_language.inc"; )
- Check this in your_language.inc: $strCharSet = 'UTF-8';
- Check that you selected the same language file in the "Language file to use" dropdown list when editing your subscribe page.
Note: make sure that lists/texts/your_language.inc is actually encoded in UTF-8.
3. Charset of admin interface pages
Since v2.10.11, the charset of admin interface pages should be set to UTF-8 in the language_info file that corresponds to the admin language you selected. In the case of English, you will need to add a language_info file to lists/admin/lan/en/ with the following contents:
4. Database encoding (in phpMyAdmin: SHOW VARIABLES LIKE 'character_set_%' )
character_set_client: utf8
character_set_connection: utf8
character_set_database: utf8
character_set_results: utf8
character_set_server: latin1
character_set_system: utf8
If you need to change the charset encoding of your database you can enter the following command in phpMyAdmin:
ALTER DATABASE <db_name> DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
Afterwards, check with: SHOW VARIABLES LIKE 'c%'
Note: Be careful with changing the database encoding of a production install. Make sure you backup your database before attempting to change its encoding and converting the data it contains. I recommend testing the conversion on a sandbox installation, not directly on your production install.
For some in-depth info on MySQL encoding see: http://mysql.rjweb.org/doc.php/charcoll
When testing your modified setup, best create a new message, as the old message will contain characters that have been saved to the database with an incorrect encoding.
See also: How to configure phpList with non-UTF-8 charsets