dedlfix: UTF8, latin1 und Co

Beitrag lesen

Hi!

ich habe zu den Zeichensätzen in HTML, sowie mysql5 einige Fragen.

Du meinst Zeichenkodierung, auch wenn das Ding meist fälschlicherweise als "charset" anzugeben ist.

  1. Wenn ich in meinem Blog keinen Zeichensatz angebe, kann dann ein User durch fehlerhafte Browsereinstellungen Umlautfehler im Blog produzieren, die auch so in die db eingetragen werden?

Wenn ich dir einen Text geben und nicht sage, in welcher Sprache er geschrieben ist, was kannst du dann logischerweise nur tun? Raten. Was erwartest du dann als Antwort vom Browser, wenn er versucht dir in der erratenen Sprache (um beim Vergleich zu bleiben) zu antworten? Vielleicht passt es, vielleicht nicht.

  1. Dieselbe Frage wie 1, nur mit dem Unterschied, dass ich explizit die Zeichenkodierung über den http-header oder einen metatag angebe?

Dann hast du und der Browser Gewissheit.

  1. Kann ich auf der Webseite Kodierung utf-8 angeben und in mysql dennoch mit voreingestelltem latin-1 arbeiten oder ist das nicht fehlerfrei machbar?

Es ist nicht verlustfrei konvertierbar. Es sei denn, du sagt MySQL, dein UTF-8-kodiertes Zeug käme als Latin1 (ISO-8859-1), dann sieht alles in Ordnung aus, aber MySQL hat es falsch im Bauch und kann damit nicht ganz richtig arbeiten (Zeichen zählen, sortieren). Außerdem zeigen dann Tools, die alles richtig machen, wie der phpMyAdmin, falsches Zeug an.

  1. Wie stelltz man eine latin-1 DB auf utf-8 um?

Es kommt auf die Kodierung der einzelnen Felder an. Wenn die Daten darin richtig kodiert sind (phpMyAdmin zeigt alles richtig an) dann kannst du einfach den Wert für die Kollation ändern. MySQL kodiert dann ordnungsgemäß um.

Lo!