Hallo Bernd, leider muss ich an der Skript-Lösung festhalten. Nervig, aber wahr ;)! Problem ist noch immer: wenn ich zweistufig vorgehen will, lasse ich einfach mein "//header('Content-type: text/plain; charset=utf-8');" weg. Dann kann ich alle Umlaute konvertieren, die in "get_html_translation_table(HTML_ENTITIES);" enthalten sind.
Danach wollte ich UTF-8 aktivieren, um die restlichen Sonderzeichen um zu wandeln. Ggf. sogar über ein separates Skript. Doch so ganz ging meine Rechnung nicht auf... Ich habe nämlich Felder, die sowohl die von get_html_translation_table(HTML_ENTITIES); abgedeckten Sonderzeichen enthält als auch beispielsweise "Ć"... In spätestens diesem Fall ist "Ć" fälschlicherweise in ein "?" umgewandelt. Die Idee, vielleicht wie TYPO3 vorzugehen, und mit SET Names zu erzwingen, dass das Skript nicht die Verbindung mit latin1 sondern UTF-8 aufbaut, ist bisher fehlgeschlagen... Oh man. Hast du vielleicht trotzdem noch eine Idee für mich? Viele Grüße Björn P.S.: Da wir einen Shared-Hosting-Server haben, konnte ich dein Skript noch nicht ausprobieren. Ist es denn so, dass deine Konvertierung tatsächlich die DB nicht "nur" in UTF-8 umwandelt? Ich glaube nämlich, dass da keine Entities bei Sonderzeichen verwendet werden, da ja UTF-8. Aber ich brauche für jedes Sonderzeichen explizit ein Entity... :( -----Ursprüngliche Nachricht----- Von: typo3-german-boun...@lists.typo3.org [mailto:typo3-german-boun...@lists.typo3.org] Im Auftrag von bernd wilke Gesendet: Mittwoch, 10. Dezember 2014 14:32 An: typo3-german@lists.typo3.org Betreff: Re: [TYPO3-german] Konvertierung von Umlauten und Sonderzeichen via PHP-Skript Am 10.12.14 13:43, schrieb Björn Hahnefeld: > Das Skript wäre mir insofern lieber, weil ich es mehrfach durchlaufen lassen > kann und somit noch Änderungen im laufenden Betrieb machen lassen kann (bis > zum Schluss). Allerdings habe ich das Problem, dass die Daten in phpMyAdmin > richtig drinnen stehen und in meinem Skript aber "?" statt dem Sonderzeichen > zurück gegeben wird. dafür sollten folgende Zeilen sein: echo "ALTER DATABASE $1 CHARACTER SET utf8 COLLATE utf8_general_ci;" | mysql -u $2 -p$3 echo mysqldump # v---- here insert utf8 if utf8 is stored in latin-fields # v---- hier utf8 eintragen wenn utf8 in latin-feldern gespeichert ist mysqldump -u $2 -p$3 --default-character-set=latin1 --databases $1 > $1.orig.sql es ist halt ein Unterschied zwischen: Die Verbindung zum Server, die Datenbank, die Tabelle, das Feld ist ... kodiert. und wenn du phpmyadmin benutzt hat der Browser auch noch die Möglichkeit die Zeichen umzuinterpretieren. > Was meinst du denn mit SED? http://de.wikipedia.org/wiki/Sed_%28Unix%29 damit kannst du die Zeichenumwandlung auch ins script packen sobald deine Zeichen sauber exportiert sind. bernd -- http://www.pi-phi.de/cheatsheet.html _______________________________________________ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german _______________________________________________ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german