Project

General

Profile

Actions

Feature #31921

closed

Changes to properly support 4 byte characters (emoji) when database is MySQL

Added by Marius BĂLTEANU over 5 years ago. Updated almost 5 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Database
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:
Resolution:
Fixed

Description

Currently, Redmine with MySQL as database doesn't support very well 4 byte characters (for ex: emojis) and you need some experience with MySQL in order to properly configure MySQL (and Redmine) to support those characters. Because of this, there are reported plenty of tickets that I'm going to relate to this issue later.

I would like to work on this in order to improve the default Redmine installation and also, to provide some documentation regarding how you can migrate an existing Redmine installation to support 4 byte characters.

For now, I've created two patches:
1. 0001-Update-default-database-config-for-MySQL.patch
- Adds to the database.yml.example the required encoding and collation, including a note to inform users that are safe only for new installations.
- Adds a test to ensure that an issue can be created using a emoji in description
- Updates some old instructions
- These settings will be default in Rails 6: https://github.com/rails/rails/pull/33608

2. attachment:0002-Task-to-check-mysql-support-for-utf8mb4.patch
This task checks the MySQL configuration (innodb_file_per_table, innodb_large_prefix, innodb_file_format) and ENGINE, ROW_FORMAT and TABLE_COLLATION for Redmine tables. Any feedback or ideas to improve this task are welcome!

I'll try to create later a Wiki page regarding the steps required to migrate and existing installation or at least some useful links.


Files


Related issues

Related to Redmine - Defect #24242: Adding comments to ticket returns internal server errorClosed

Actions
Related to Redmine - Defect #28774: Internal Error when Submit the Description with Vietnamese in Unicode fontsClosed

Actions
Related to Redmine - Defect #27406: Internal Server Error while posting smile in issue's descriptionClosed

Actions
Related to Redmine - Defect #25959: "Smile of the death" problemClosed

Actions
Related to Redmine - Defect #24992: MailHandler: an unexpected error occurred when receiving email: invalid byte sequence in UTF-8Needs feedback

Actions
Related to Redmine - Defect #23586: Create index on mysql exceed limitsClosed

Actions
Related to Redmine - Defect #22119: Error: Data too long for column 'notes' when copy paste picturesClosed

Actions
Related to Redmine - Defect #21398: Mysql: 500 server error when submitting 4 bytes utf8 (to be saved in the 'notes' field)Closed

Actions
Related to Redmine - Defect #20143: Mailhandler cannot handle 4-byte charactersNew

Actions
Related to Redmine - Patch #19742: RedmineInstall: MySQL: collation_databaseClosed

Actions
Related to Redmine - Defect #18866: MySQL: disappear after 4-Byte UTF-8Closed

Actions
Related to Redmine - Defect #30848: Error when creating issue with emoji in descriptionNew

Actions
Related to Redmine - Defect #27984: Arabic Support IssuesClosed

Actions
Related to Redmine - Defect #27803: Can't post a smiley face in issues descriptionClosed

Actions
Related to Redmine - Defect #27361: Failed when using EmojiClosed

Actions
Related to Redmine - Defect #27238: Mysql Error after upgrading Redmine from 2.5 to 3.*Closed

Actions
Related to Redmine - Defect #26386: Mysql: Unable to update ticket with EmojiClosed

Actions
Related to Redmine - Defect #24030: When SVN or Git repository has a commit comment include an emoji (4 bytes charactor), error occursClosed

Actions
Related to Redmine - Defect #23557: Special (micro) character in message field causes internal server errorClosed

Actions
Related to Redmine - Defect #22618: subject utf-8 char vs mysql2Closed

Actions
Related to Redmine - Defect #19334: Error 500 when uploading file with umlaut in filename from MacClosed

Actions
Related to Redmine - Defect #10772: 4-byte utf-8 charactersClosed

Actions
Related to Redmine - Patch #32054: Add test for 4 byte characters (emoji) supportClosedGo MAEDA

Actions
Related to Redmine - Defect #34235: Losing data due to unsupported charactersClosed

Actions
Has duplicate Redmine - Defect #33649: Ascii code in the 'Description' causes 500 errorClosed

Actions
Has duplicate Redmine - Defect #34574: Email Fetcher catch no Mails with smileyClosed

Actions
Actions

Also available in: Atom PDF