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

Printed on: April 16, 2024 at 04:04 o'clock

Mitglied: 48507
48507 Feb 23, 2011 at 16:31:25 (UTC)
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.
Member: dog
dog Feb 23, 2011 at 18:07:24 (UTC)
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.
Member: AskFabrice
AskFabrice Feb 24, 2011 at 15:54:35 (UTC)
Goto Top
Vielen dank werd ich mal ausprobieren, vor allem das mit der xml-datei tönt erfolgsversprechend.

Ich werde mich wieder melden.
Member: AskFabrice
AskFabrice Mar 01, 2011 at 10:51:30 (UTC)
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 Mar 01, 2011 at 11:01:43 (UTC)
Goto Top
In der Datenbank heißt in phpmyadmin - was nichts anderes ist als eine Sammlung von Scripten. Wie sieht es in SQL aus?
Member: AskFabrice
AskFabrice Mar 01, 2011 at 11:04:42 (UTC)
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 Mar 01, 2011 at 11:36:10 (UTC)
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...)
Member: AskFabrice
AskFabrice Mar 01, 2011 at 13:24:47 (UTC)
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 Mar 01, 2011 at 13:43:36 (UTC)
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 (?)
Member: AskFabrice
AskFabrice Mar 01, 2011 at 14:19:31 (UTC)
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
Solution 48507 Mar 01, 2011, updated at Sep 17, 2014 at 14:00:46 (UTC)
Goto Top
Member: AskFabrice
AskFabrice Mar 01, 2011 at 14:55:46 (UTC)
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