Page 1 of 2

? statt Umlaute

Posted: Wed 6. Jul 2005, 13:41
by JimPansen
Hallo,

Diese Frage kann ich endlich mal beruhigt in Deutsch stellen ;-)
Ich habe eine PHPWCMS Seite auf einen anderen Webserver übertragen. das fluppte auch alles gut, nur die Textdaten aus der Datenbank haben nun alle Fragezeichen anstelle der Umlaute. Was habe ich verkehrt gemacht? Ich denke es ist keine PHPWCMS Frage, es scheint so passiert zu sein das beim erstellen des SQL Dumps die Umlaute ersetzt worden sind. Ihr kennt das Problem bestimmt denke ich...

Posted: Wed 6. Jul 2005, 15:41
by Neelix
Hi,

evt. ist es das / mybe the problem with differnt mysql-versions:
Bei mysql kleiner 4.0 produziern dumpfiles, die mit 3.x.x (via phpMyAdmin)erstellt wurden Fehler.

/
If you use mysql < 4.0 you will get an error while install because the sql export was made by MySQL 4.0.20 (phpMyAdmin):
open <file>.sql:
edit like this example:
-- (new: MySQL 4.0.xx) exportiert
ENGINE=MyISAM DEFAULT CHARSET=latin1
-- (old: MySQL 3.23.xx) exportiert
TYPE=MyISAM

In den neueren phpMyAdmin-Versionen erscheint ein zusätzliches Drop-Down für die Exportkompatibilität: MySQL3.x.x /MySQL 4.x.x./....
Untersuche dein Zielsystem, welche MySQL-Version gebraucht wird und exportiere (dump) deine "alte" Datenbank mit entsprechender Kompatibilität....
/
In the newer phpMyAdmin releases are an build in Drop-Down for export-modus MySQL3.x.x /MySQL 4.x.x./....
check your MySQL release in your new system, and make an new dump in compatible-mod

:wink:

Posted: Wed 6. Jul 2005, 17:48
by Pappnase
hehe

think you have used xampp before!? is that right!?

Posted: Thu 7. Jul 2005, 07:47
by JimPansen
Pappnase wrote:hehe

think you have used xampp before!? is that right!?
No, I always use Debian or SUSE Servers, this Server is running Debian.

Posted: Thu 7. Jul 2005, 07:54
by JimPansen
Neelix wrote:evt. ist es das / mybe the problem with differnt mysql-versions:
Bei mysql kleiner 4.0 produziern dumpfiles, die mit 3.x.x (via phpMyAdmin)erstellt wurden Fehler.
phpMyAdmin 2.6.1-pl2

Verbunden mit MySQL 4.0.24_Debian-4woody1-log auf localhost

Leider kein Button MySQL Kompatibilität in Sicht...

Posted: Thu 7. Jul 2005, 08:31
by pico
Hi

check in the Main-Window of phpMyAdmin wich Language-Setting you have selected 'German (de-ISO 8859-1)' on both Systems (Source and Target)

Posted: Thu 7. Jul 2005, 09:19
by Neelix
JimPansen wrote: phpMyAdmin 2.6.1-pl2
Leider kein Button MySQL Kompatibilität in Sicht...
look at the demo-page: (phpMyAdmin 2.6.2)
http://rabus.phpmyadmin.net/demos/RELEASE_FINAL/ (login: demo)
[de]
SQL-Optionen:
SQL-Export-Kompatibilität: [ ... ]x
Senden:
Zeichencodierung der Datei: [ ... ]x
[EDIT]
I found this - looks like mysql 4.0.24 is to "old":
5.3.2. The Server SQL Mode


The MySQL server can operate in different SQL modes, and (as of MySQL 4.1) can apply these modes differentially for different clients. This allows an application to tailor server operation to its own requirements

Posted: Thu 7. Jul 2005, 14:14
by Paradroid
@pappnase :

Habe gerade die neueste XAMPP Version installiert und festgestellt, das ich nach einem Import der db's auch das Problem habe. Bevor ich jetzt lange rumsuche, hast du da eine Lösung für ?

Thx

Achim

Posted: Sun 11. Sep 2005, 10:47
by NiGHtOwL
Hallo zusammen,
das Ganze hier ist wohl schon etwas her und ich hatte eine Suche im Board gestartet und bin auf diesen Beitrag gestoßen weil ich das gleiche Problem bei mir auf dem lokalen Server habe.

Die Lösung habe ich gefunden.

Der Fehler liegt bei den neusten PHPmyAdmin Versionen 2.6.x, vielleicht auch schon etwas früher. Dort wird als Zeichensatz beim Export UTF-8 ab MySQL Version 4.x verwendet. Das ist falsch. Einstellen lässt sich das nicht im PHPmyAdmin Interface. Aber man kann das manuell ändern und zwar nur ein einziges Mal, dann geht's bei allen Folgeaktionen.

1. In das Verzeichnis von PHPmyAdmin gehen
2. Dort dann in das Verzeichnis libraries
3. Die Datei database_interface.lib.php suchen und in einem Editor (am besten mit Zeilennummern) öffnen und ändern wie folgt:

Zeile 161 bis 168 (einschliesslich)

Code: Select all

if (!empty($GLOBALS['lang']) && (substr($GLOBALS['lang'], -5) != 'utf-8')) {
            $lang_utf_8_version = substr($GLOBALS['lang'], 0, strpos($GLOBALS['lang'], '-')) . '-utf-8';
            if (!empty($GLOBALS['available_languages'][$lang_utf_8_version])) {
                $GLOBALS['lang'] = $lang_utf_8_version;
                $GLOBALS['charset'] = $charset = 'utf-8';
            }
        }
Diese Zeilen einfach auskommentieren und das sieht dann so aus:

Code: Select all

/*if (!empty($GLOBALS['lang']) && (substr($GLOBALS['lang'], -5) != 'utf-8')) {
            $lang_utf_8_version = substr($GLOBALS['lang'], 0, strpos($GLOBALS['lang'], '-')) . '-utf-8';
            if (!empty($GLOBALS['available_languages'][$lang_utf_8_version])) {
                $GLOBALS['lang'] = $lang_utf_8_version;
                $GLOBALS['charset'] = $charset = 'utf-8';
            }
        }
        */
4. Datei dann abspeichern und hoch zum server und die vorherige überschreiben.

5. Freuen, daß es nu endlich geht ;)

Grüße

NiGHtOwL

Posted: Sun 11. Sep 2005, 17:09
by flip-flop
:wink: Hallo,
es geht auch mit sauberen Lösungen. Du hast ja vollen Zugriff auf den Server. Also verwende doch mysqldump. Damit klappt es auf jedem Fall. (Ist ein Tool was in der Regel mit der Datenbank kommt.

mysqldump -u username -p database > mydump.sql (PW. wird abgefragt).
http://www.mysql.com/doc/de/mysqldump.html
http://www.mysql.com/doc/de/

Gruß Knut

Posted: Sun 11. Sep 2005, 21:18
by NiGHtOwL
Danke für den Tipp, nur der funktionierte nicht, sonst hätte ich den erwähnt. (Es kann natürlich auch sein, daß ich den Befehl nicht richtig schrieb)
Es geht hier auch darum, daß Leute eben meist nicht Vollzugriff haben und dafür ist die obengenannte Lösung ideal. Ausserdem einmal die PHP Datei geändert.... es geht immer.

Ich nehm lieber was womit ich von überall drankomme und was funktioniert anstatt etwas was nur lokal dann geht.

Vielleicht eine Geschmacksfrage.

Posted: Mon 12. Sep 2005, 09:05
by flip-flop
Hi NiGHtOwL,

ja richtig, die meisten haben keinen Vollzugriff, häufig auch nicht auf den code von PHPmyAdmin.
Die gängigen Provider benutzen zu 90% 4.0-Datenbanken ohne separate Kollation-Einstellung mit einem etwas älteren PHPmyAdmin. Da sollte es von Provider zu Provider keine Probelme geben. Bei den lokalen Installationen finden man aber sehr häufig die neuen Versionen, die dann nicht mehr kompatibel sind aber hier haben wir zumindest Vollzugriff.

Ich halte Deinen Tip trotzdem für sehr gut.
Denn mit diesen beiden Möglichkeiten sollte es irgenwie klappen.

Ich habe mir auch schon die Finger wundgesucht, bis ich auf die Tools um mySQL gestoßen bin. Und damit funktiniert der Export bisher zu jedem Provider.

Gruß Knut

Posted: Sat 17. Sep 2005, 08:59
by Oliver Georgi
und mysqldump macht gerade bezüglich Umlauten Probleme beim Transport von Mysql alt nach Mysql neu. Bin auch schon mehrfach reingefallen.

Oliver

Posted: Sat 17. Sep 2005, 09:23
by NiGHtOwL
Dann wirste mit meiner Lösung froh sein :)

Man muss auch nicht unbedingt den phpMyAdmin des Providers nutzen. Man kann sich selbst einen auf dem Webspace einrichten....die Daten hat man ja vom Provider für den Zugriff bekommen. Da kann man dann die von mir vorgeschlagene und auch funktionierende Änderung vornehmen.

Posted: Sat 17. Sep 2005, 09:33
by flip-flop
:) Stimmt :!:

Gruß Knut