dedlfix: String Enkodierung

Beitrag lesen

Hi!

Leider weiß ich nun mal nicht, wie der vor dem INSERT bearbeitet wurde. Die Seite und auch die DB laufen unter UTF8.

Es gibt speziell unter MySQL eine ganze Menge Möglichkeiten eine Zeichenkodierung zu konfigurieren. Entsprechend hoch ist das Missverständnispotential. Es ist durchaus üblich, dass man sich die falschen Werte anschaut und dann nicht die richtigen Schlussfolgerungen daraus zieht. (</archiv/2010/1/t194524/#m1301030>)

Grundsätzlich wird die Datenbank aber kein so schreckliches Problem darstellen, wenn sie sowohl beim Schreiben, als auch beim Lesen auf die gleiche Weise falsch kontaktiert wird (d.h. ohne Angabe des Encodings der Connection - üblicherweise mit "SET NAMES utf8" als Query, oder mysqli::set_charset()).

Das kann man so grundsätzlich nur sagen, wenn MySQL von Latin1 oder anderen 1-Byte-Kodierungen als Default-Verbindungskodierung ausgeht. (Latin1 ist zwar der Server-Default-Wert, lässt sich aber administrativ ändern.) Wenn man UTF-8 als Default-Wert (zumindest) für Verbindungen konfiguriert, dann gehen Latin1-kodierten Zeichen oberhalb von 0x80 verloren, weil sie üblicherweise keine gültige UTF-8-Sequenz bilden.

Lo!