Export kein Latin1
hörbiger
- datenbank
0 Froschpopo0 hörbiger0 Froschpopo0 hörbiger0 Froschpopo0 dedlfix
0 dedlfix
0 hkl
Hallo,
ich habe eine mySQL-DB und exportiere sie als latin1 aus phpmyadmin. Schaue ich mir das File an, sind Umlaute drin. Mit keiner Erwähnung steht in dem File es von uft8 o.ä.
Nun importiere ich die Sache. Umlaute futsch! Selbst beim Import stelle ich auf latin1. Nada.
Warum? Hat jemand einen Tipp?
hörbiger
Woher weisst du, dass die Umlaute futsch sind?
Wenn Du dir das Dumpfile ansiehst denk dran, den Editor (zB vi) auch auf den neuen Zeichensatz umzustellen.
Mein Editor ist standardmäßig auf utf-8 eingestellt. Um latin1 Zeichensätze zu sehen, muss ich erst auf mindestens iso-8859-1 umstellen.
Woher weisst du, dass die Umlaute futsch sind?
wenn ich in phpmyadmin mir die importierten datensätze anzeigen lasse, sind alle umlaute im eimer...
Wenn Du dir das Dumpfile ansiehst denk dran, den Editor (zB vi) auch auf den neuen Zeichensatz umzustellen.
naja. im editor sind die umlaute alle da... vim nutze ich dafür nicht...
Mein Editor ist standardmäßig auf utf-8 eingestellt. Um latin1 Zeichensätze zu sehen, muss ich erst auf mindestens iso-8859-1 umstellen.
wie gesagt: editor zeigts richtig an, nur importiert wirds n icht richtig.. :-(
Sind nur die Umlaute latin1? Die Spaltentypen müssen auch latin1 sein. Bin mir grad nicht ganz sicher, aber glaub das wäre dann sowas wie latin1_swedish_ci
Sind nur die Umlaute latin1? Die Spaltentypen müssen auch latin1 sein. Bin mir grad nicht ganz sicher, aber glaub das wäre dann sowas wie latin1_swedish_ci
DROP TABLE IF EXISTS `genre`;
CREATE TABLE IF NOT EXISTS `genre` (
`id_genre` int(11) NOT NULL auto_increment,
`timestamp` text NOT NULL,
`nummer` text NOT NULL,
`name` text NOT NULL,
`beschreibung` text NOT NULL,
PRIMARY KEY (`id_genre`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ;
das steht in dem exportierten file...
latin1 wird nicht von allen Versionen unterstützt. Öffne mal eine KOPIE des Dumpfiles und ändere latin1 in latin1_swedish_ci
Dann versuchs nochmal zu importieren
echo $begrüßung;
latin1 wird nicht von allen Versionen unterstützt. Öffne mal eine KOPIE des Dumpfiles und ändere latin1 in latin1_swedish_ci
Wenn du dich dabei auf "... DEFAULT CHARSET=latin1 ..." bezieht, so ist eine Umstellung dieses Wertes auf latin1_swedish_ci nicht richtig, da der Tabelle Angaben zur Kollation (Sortierung), hier "swedish_ci", egal sind. Die Kollation interessiert nur bei den Spalten (aber nicht in diesem Zusammenhang sondern erst später bei der Abfrage von Daten) und wäre dort einzustellen, dann aber mittels des Schlüsselwortes COLLATION.
Beide Werte interessieren aber nicht primär beim Importieren von Daten. Hier muss das MySQL wissen, in welcher Kodierung die zu importierenden Daten vorliegen, und nicht, in welcher Kodierung sie in die Tabelle eingetragen werden sollen. Eine Umwandlung nimmt MySQL gegebenenfalls beim Speichern in die Felder selbständig vor. Voraussetzung, dass es dabei keinen Datenverlust gibt, ist vor allem, dass die Kodierung der Import-Datei bekannt ist.
echo "$verabschiedung $name";
echo $begrüßung;
ich habe eine mySQL-DB und exportiere sie als latin1 aus phpmyadmin.
Dann siehst du was, was ich nicht sehe. Die Stelle zum Einstellen der beim Export zu verwendenden Zeichenkodierung habe ich noch nicht gefunden. Meines Wissens exportieren aktuelle Versionen von phpMyAdmin immer UTF-8-kodiert.
Schaue ich mir das File an, sind Umlaute drin. Mit keiner Erwähnung steht in dem File es von uft8 o.ä.
Es gibt keinen standardisierten Weg, Kodierungsangaben dateiformatübergreifend in Dateien zu notieren. Deswegen wirst du sie auch nur in wenigen Fällen darin finden. Solch eine Information in der Datei abzulegen ist auch so sinnvoll, wie im Brief zu schreiben, wie der Umschlag zu öffnen ist. (Dieses Beispiel hinkt etwas, ich glaube, ich lösch das wieder raus vor dem Absenden.)
Nun importiere ich die Sache. Umlaute futsch! Selbst beim Import stelle ich auf latin1. Nada.
Warum? Hat jemand einen Tipp?
Stelle die Kodierung beim Import auf "utf8" und alles wird gut. Welche Kodierungsangaben die Felder deiner Tabellen haben ist dabei nebensächlich. MySQL nimmt dabei gegebenenfalls Umkodierungen vor. (Natürlich muss das technisch auch gehen. Für Zeichen die in der Zielkodierung nicht vorkommen, wwird stattdessen ein Ersatzzeichen verwendet, aus dem man das originale Zeichen nicht wiederherstellen kann.)
echo "$verabschiedung $name";
Hallo !
Hallo,
ich habe eine mySQL-DB und exportiere sie als latin1 aus phpmyadmin. Schaue ich mir das File an, sind Umlaute drin. Mit keiner Erwähnung steht in dem File es von uft8 o.ä.
Wie man den Export umstellt, weiss ich nicht; bei meiner Version phpMyAdmin 2.6.2-Debian-3sarge1 kann man nur das GUI umstellen.
Dazu gab's nen Artikel den ich mit viel Muehe ( Suche, ENTER ) nach einem total originellem Muster ( "Umlaute weg" ) an ganz unerwartetem Ort ( SelfHTML Archiv) gefunden habe.
mysqldump gaeb's sonst auch noch
Nun importiere ich die Sache. Umlaute futsch! Selbst beim Import stelle ich auf latin1. Nada.
Warum? Hat jemand einen Tipp?
Gruesse
Holger