Which type of encoding is crucial for xwiki? UTF8 or UTF8mb4?

Which encoding is preffered for xwiki DB?
Will xml export from UTF8mb4 xwiki and xml import to UTF8 xwiki cause any problem?
I am referring to some potencial wrong introduction of data provided in export to the system. Won’t it be problem because the export does its work in UTF8 only right, will be?

As indicated on http://platform.xwiki.org/xwiki/bin/view/AdminGuide/InstallationMySQL it’s recommended to use utf8mb4. If you try to save characters not supported by utf8mb3 in a MySQL database configured as utf8mb3 (also known as “utf8” in MySQL) the save will fail as far as I remember.

1 Like

So something would “only” don’t save right? Something like emojis and so on right? Would it have some connection to duplication of links to one page if the page has "; " sign in title?


I don’t see how since it’s not related to the encoding, “;” being an ASCII character. Feels more like a proxy/URL issue to me.

1 Like

Hi @tmortagne

I ran in this problem today, too (with mySQL and XWiki). I had the database with UTF8mb4, but the message “Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs” still comes.

It is possible, that someone from the development could write a sql script to make this possible? The problem is, that the primary keys prohibit the changes.

This would be great!

@Meza100 feels like you are using a too old version of MySQL. As indicated on https://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Installation/InstallationWAR/InstallationMySQL/#HMySQLversionsolderthan5.7andutf8mb4 if you want to use utf8mb4 you need at least MySQL 5.7.

Unfortunately I don’t use an old mysql version. I use version 8.0.25.

Which version of XWiki are you trying to install ? All I can tell you is that XWiki works fine with MySQL server 8.x, there is no reason that you get this kind of error. Maybe you could share more details of the error you get since what you pasted does not say much about which table is involved for example.