fietur: UTF-8 und Windows

Beitrag lesen

Ich muss zugeben, dass mir das Ganze ziemlich schleierhaft ist.

Ich habe die (MySQL) Datenbank nicht einfach nur kopiert, sondern die Tabelle tatsächlich neu importiert, wobei das importierte File auf jeden Fall UTF-8 codiert war. Das glaube ich zumindest, weil ich das ja als Grund für den Fehler bei der Umstellung auf UTF-8 angenommen habe, und daher darauf geachtet habe.

Dabei könnte natürlich etwas schiefgelaufen sein, aber das sollte sich kontrollieren lassen. Wo und wie könnte ich denn nachsehen, welche Kodierung an welcher Stelle verwendet wird?

Eben habe ich einen phpMyAdmin SQL Dump der Tabelle angefertigt, darin steht für die alte Version:

CREATE TABLE `tabelle` (
  `Datum` varchar(10) COLLATE latin1_german1_ci NOT NULL,
  ... 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci;

Hier wurden die Daten damals beim Import im Format Windows-1251 eingelesen. Ein neuer Import (aus einem File, das in UTF-8 vorlag), der mit der Einstellung des Formats utf8 im Interface vorgenommen wurde, zeigt stattdessen:

CREATE TABLE `tabelle_utf` (
  `Datum` varchar(10) NOT NULL,
  ...
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Laienhaft würde ich dann davon ausgehen, dass das Speicherformat in der neuen Version dann utf8 ist und dieses auch bei Abfragen - falls nicht eine Konvertierung angegeben/eingestellt ist - Verwendung findet.