[TYPO3-german] Konvertierung von Umlauten und Sonderzeichen via PHP-Skript
Björn Hahnefeld
b.hahnefeld at nal-vonminden.com
Thu Dec 11 13:58:52 CET 2014
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-bounces at lists.typo3.org
[mailto:typo3-german-bounces at lists.typo3.org] Im Auftrag von bernd wilke
Gesendet: Mittwoch, 10. Dezember 2014 14:32
An: typo3-german at 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 at lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
More information about the TYPO3-german
mailing list