Skip to content

Switch MySQL database character set and collation to UTF8 Multibyte if supported #15660

@tschloeter

Description

@tschloeter

Hello,

I found out that synchronizing a calendar or address book that contains UTF-8 Multibyte characters with a length of 4 bytes via CalDAV / CardDAV breaks the database. This especially happens when an entry contains Emoji symbols as most of these are 4-byte UTF-8 characters.

I solved the problem by changing the database character set to "utf8mb4" and collation to "utf8mb4_unicode_ci" respectively using ALTER DATABASE / ALTER TABLE commands.
Then I changed the server/client character sets and collation in my.cnf of my MariaDB server.
Finally, I performed a full-text search for "utf8" in the owncloud htdocs directory and changed all SQL commands to take advantage of the new character set and collation.

Now the calendar and address book do support Emoji symbols.

A good explanation is given on this website:
https://mathiasbynens.be/notes/mysql-utf8mb4

Regards,
Thomas

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions