dedlfix: UFT-8 funktioniert nicht?!

Beitrag lesen

Hi!

Entscheidend ist der Inhalt Deiner Tabellen, ob Du die Char-Encodings deklarierst oder nicht, ist eine andere, eher pragmatische Angelegenheit.

Eine ordentliche Konfiguration zu ignorieren empfiehlt sich nur, wenn man keinen Wert auf Sortierung und sonstige Stringverarbeitung seitens MySQL legt.

Wenn Du ein ordentlicher Mensch bist, taggst Du eine Tabelle mit utf-8, wenn utf-8 drin ist. Beachte, dass eine utf-8-Deklaration in mysql für ein Zeichen dreimal mehr Platz reserviert gegenüber einer latin1-Deklaration.

Es stimmt schon, dass ein UTF-8-Zeichen bis zu drei Byte benötigt. Die benötigt es aber auch, wenn du die bis zu drei Byte als Latin1 deklariert speichern lässt. Es werden stets nur so viel Byte belegt, wie das UTF-8-Zeichen lang ist (im VARCHAR-Feld). Es wäre unsinnig, drei Bytes zu reservieren, denn mit UCS2 existiert eine 2-Byte-Kodierung, mit der sich noch dazu einfacher arbeiten lässt. Die einzige Stelle, an der sich die 3 Bytes negativ bemerkbar machen ist bei der Länge von Indexen, die nach Byte gezählt nicht mehr als 1000 pro Zeile lang sein dürfen, und somit nur 333 Zeichen bei UTF-8.

Lo!