askfabrice
Goto Top

Falsche ausgabe von Umlauten unter MySQL

Hallo zusammen.
Ich habe das Problem, dass ich in meiner Datenbank, wenn ich Inhalte per INSERT statement einfüge, Umlaute komisch angezeigt werden. z.B. ä = ä oder ü = ü.

Ich habe auf meinem Server XAMPP installiert und eine MySQL datenbank eingerichtet. Ich manage sie mit PHPmyadmin.
Wenn ich nun Daten aus einem XML file einfüge klappt das zwar ganz gut aber alle Umlaute werden falsch dargestellt, ä = ä oder ü = ü.
Zuerst waren es in den Feldern mit umlauten komplett nur zahlen ich habe aber dann die kollation geändert und dann hatte ich obiges Problem.
Ich habe schon ziemlich jedes Charset ausprobiert und ausgiebig bei Google recherchiert.
Kann mir jemand helfen?

Freundlich Grüsse
AskFabrice

Content-Key: 161431

Url: https://administrator.de/contentid/161431

Ausgedruckt am: 29.03.2024 um 14:03 Uhr

Mitglied: 48507
48507 23.02.2011 um 17:31:25 Uhr
Goto Top
Die Daten scheinen als cp1251 zu kommen und werden als UTF-8/Unicode gespeichert. Stell doch mal die Codierung deiner XML-Datei um.
Mitglied: dog
dog 23.02.2011 um 19:07:24 Uhr
Goto Top
Du musst durchgängig den korrekten Zeichensatz benutzen.

Zuerst muss auf der phpmyadmin-Startseite das Verbindungscharset auf UTF-8 stehen.
Dann sollte das Datenbankcharset auf UT8 stehen.
Genauso das Tabellencharset.
Und das Feldcharset muss auch auf utf8_general_ci stehen.

Dann muss die XML-Datei als UTF-8 deklariert sein und auch wirklich UTF-8 enthalten und das muss beim Import auch ausgewählt sein.

So wird da auch was draus.
Mitglied: AskFabrice
AskFabrice 24.02.2011 um 16:54:35 Uhr
Goto Top
Vielen dank werd ich mal ausprobieren, vor allem das mit der xml-datei tönt erfolgsversprechend.

Ich werde mich wieder melden.
Mitglied: AskFabrice
AskFabrice 01.03.2011 um 11:51:30 Uhr
Goto Top
Also ich habe das jetzt ausprobiert hat leider nicht geklappt.
Als ich jedoch in mein ausgabeskript:
header("Content-type: text/html; charset=utf-8");
Eingefügt habe ist alles korrekt dargestellt worden. In der Datenbank selbst wurden die Umlaute imernoch inkorrekt datgestellt.
Ich habe es auch in meinem einfügeskript versucht jedoch ohne erfolg.

Habt ihr noch andere Ideen?

Vielen Dank
Mitglied: 48507
48507 01.03.2011 um 12:01:43 Uhr
Goto Top
In der Datenbank heißt in phpmyadmin - was nichts anderes ist als eine Sammlung von Scripten. Wie sieht es in SQL aus?
Mitglied: AskFabrice
AskFabrice 01.03.2011 um 12:04:42 Uhr
Goto Top
Ja das heisst in PHPmyadmin. Guter Punkt. Wie meinst du das? Bin noch nicht so erfahren, wo kann ich das nachschauen?
Mitglied: 48507
48507 01.03.2011 um 12:36:10 Uhr
Goto Top
X:\xampplite\mysql\bin>mysql --user=root --password=pw datenbankname
select * from tabellenname;


Wenn z.B. aus ü ein ³ wird, ist alles richtig (hier spielt noch die Codierung in der Eingabeaufforderung eine Rolle...)
Mitglied: AskFabrice
AskFabrice 01.03.2011 um 14:24:47 Uhr
Goto Top
Wenn ich den Befehl durchführe werden die Umlaute falsch dargestellt (ä so oder ähnlich). Liegt es also an der Datenbank (also dem Zeichensatz)?
Mitglied: 48507
48507 01.03.2011 um 14:43:36 Uhr
Goto Top
Also ich habe mir mal mein phpmyadmin (3.3.9.2) angeschaut:

phpmyadmin eingestellt auf utf8_general_ci
Datenbank: utf8_general_ci

Alles Ok.

Wie importierst du die Daten? Per Import oder copy&paste? Wenn per Import, muss in der XML oder beim Import selbst die Codierung angegeben werden (?)
Mitglied: AskFabrice
AskFabrice 01.03.2011 um 15:19:31 Uhr
Goto Top
Hallo

Die einstellungen sind bei mir identisch.
Ich imortiere sie mit einem PHP skript aus einer XML Datei mitels Insert statement. In der XML ist sie Angegeben.
Weisst du wie ich die Codierung beim Import angeben kann?
Mitglied: 48507
Lösung 48507 01.03.2011, aktualisiert am 17.09.2014 um 16:00:46 Uhr
Goto Top
Mitglied: AskFabrice
AskFabrice 01.03.2011 um 15:55:46 Uhr
Goto Top
Vielen Vielen Vielen Dank!!!!!!!

Der erste Link verbarg die Lösung. Ich musste beim einfügen noch "set names 'utf8'" einfügen und siehe da alles i.O.

noch einmal Vielen Dank
Top