#Server #Update, der UTF 8 Bug von »#MySQL« und »#MariaDB«

  • Das ist wieder mal (wenig) lustig.

Gütersloh, 4. Februar 2024

Ein Techniker des Webhosters hat den Server aktualisiert (neues OS, alle Programme aktualisiert, von »MySQL« auf »MariaDB« umgestellt). Dabei hat er alle Tabellen zerschossen und nimmt sich nichts davon an. Er hat alles in UTF 8 konvertiert – obwohl nur ein paar Tabellen in Windows 1252 codiert waren – diese sind nun korrekt in UTF 8 codiert, alle anderen, die zuvor schon in UTF 8 codiert waren, waren danach zerschossen. Aber er hat das Problem noch nicht einmal verstanden.

Die neueste Version von »MariaDB« ist nun noch strikter als die vorherige. »MySQL« (und »MariaDB«) haben einen uralten Bug, der einfach nicht beseitigt wird: sie können kein 4 Byte UTF 8 – nur 3 Byte. Das wird teils heiß diskutiert. Und in der neuesten Version bricht »MariaDB« nun die Transaktion einfach ab, sobald 4 Byte Zeichen übergeben werden.

Theoretisch wäre es eine Lösung, die entsprechenden Zeichen in #HTML #Entitys zu konvertieren, was aber umständlich ist und nicht vollständig funktioniert (was ebenfalls heiß diskutiert wird). Jedenfalls nicht ohne einen kleinen Trick, der eigentlich völlig absurd klingt (und auch völlig absurd ist). Aber er funktioniert.