Hi Björn,

was spricht dagegen, die Daten aus der Datenbank in UTF8 rauszuholen und
durch htmlentities() durchzujagen?

Marc


Am 09.12.14 11:55, schrieb Björn Hahnefeld:
> Hallo Chris,
> 
> zunächst einmal vielen herzlichen Dank für deine schnelle und kompetente
> Rückantwort. Allerdings muss ich keine DB-Konvertierung durchführen, da
> TYPO3 durch Magento abgelöst wird.
> 
> Da aber die Warenwirtschaft nicht mit allen Umlauten klar kommt, muss ich
> alle Umlaute in Entities umwandeln - also nicht die Datenbank selbst. Meine
> Überlegung war daher, nach genau diesen Zeichen zu suchen und diese dann in
> der Datenbank direkt zu ersetzen (bevor die Felder in die Warenwirtschaft
> exportiert werden).
> 
> Nebenbei:
> Es geht um die Artikel- und Produktdaten der Extension commerce. Dessen
> Felder (und nur diese) brauche ich. Daher auch mein Skript, welches in einer
> dieser DB-Tabellen Daten verändert ;)!
> 
> Viele Grüße
> 
> Björn
> 
> -----Ursprüngliche Nachricht-----
> Von: typo3-german-boun...@lists.typo3.org
> [mailto:typo3-german-boun...@lists.typo3.org] Im Auftrag von Chris Wolff -
> AERTiCKET AG
> Gesendet: Dienstag, 9. Dezember 2014 11:38
> An: German TYPO3 Userlist
> Betreff: Re: [TYPO3-german] Konvertierung von Umlauten und Sonderzeichen via
> PHP-Skript
> 
> Hallo Björn,
> wenn deine daten wirklich utf-8 sind ist alles fein.
> 
> Ich hab mal zwei scripte als gist auf github gestellt dich ich für die
> datenbank convertierung nutze.
> 
> Das erste fixted einfach nur die tabellen. Wo sie noc nicht utf-8 weil
> (collate)
> https://gist.github.com/wolffc/8a0a9cebeb980afcf388
> 
> das zweite exportiert die datenbank als latin1 und reimportiert sie als
> utf-8 das ist nützlich falls du utf-8 daten in deine latin1 datenbank
> geschrieben hast.
> Mit etwas abwandelung kannst du das natürlich auch für andere encodings
> nehmen.
> https://gist.github.com/wolffc/108cf972be3b94be5d85
> 
> 
> gruss chris
> 
> 
> 
> -----Ursprüngliche Nachricht-----
> Von: typo3-german-boun...@lists.typo3.org
> [mailto:typo3-german-boun...@lists.typo3.org] Im Auftrag von Björn Hahnefeld
> Gesendet: Dienstag, 9. Dezember 2014 11:09
> An: typo3-german@lists.typo3.org
> Betreff: [TYPO3-german] Konvertierung von Umlauten und Sonderzeichen via
> PHP-Skript
> 
> Hallo zusammen,
> 
>  
> 
> ich habe hier eine TYPO3 4.4.13-Installation vor mir. Die Daten in den
> MySQL-Tabellen sind alle eine    utf8_general_ci-Kollation. Wie die Daten
> tatsächlich abgespeichert werden, habe ich leider noch nicht im phpMyAdmin
> heraus gefunden.
> 
>  
> 
> Allerdings möchte ich alle Sonderzeichen und Umlaute (auch die CZ und PL wie
> beispielsweise "Ć" umwandeln. Für den latin1-Zeichensatz ist das kein
> Problem, denn dafür gibt es ja bereits einen PHP-Befehl (mit dem ich einige
> Zeichen ausgenommen habe, damit HTML-Formatierungen nicht zerstört werden) -
> nämlich get_html_translation_table.
> 
>  
> 
> Allerdings werden mir die PL- und CZ-Sonderzeichen nicht konviertiert. Wenn
> ich dann einen Blick in das SQL-Statement werfe, werden diese einfach nicht
> umgewandelt. Das Skript selbst ist als UTF-8 abgespeichert. Hier einmal mein
> Skript. Vielleicht hat jemand eine gute Idee, woran das liegen könnte?
> 
>  
> 
> --
> 
> <?php
> 
>  
> 
>                 // Errors
> 
>                 error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
> 
>                 ini_set("display_errors", 1);
> 
>                 
> 
>                 // Einstellungen
> 
>                 $list = get_html_translation_table(HTML_ENTITIES);
> 
>                 unset($list['<']);
> 
>                 unset($list['>']);
> 
>                 unset($list['"']);
> 
>                 unset($list['&']);
> 
>                 $list['Ć'] = '&#262;'; // wird nicht umgewandelt und
> vermutlich auch nicht als solches Zeichen gefunden.
> 
>                 $list['ć'] = '&#263;'; // wird nicht umgewandelt und
> vermutlich auch nicht als solches Zeichen gefunden.
> 
>                 $list['Ś'] = '&#346;'; // wird nicht umgewandelt und
> vermutlich auch nicht als solches Zeichen gefunden.
> 
>                 $list['ś'] = '&#347;'; // wird nicht umgewandelt und
> vermutlich auch nicht als solches Zeichen gefunden.
> 
>  
> 
>                 //var_dump($list);         
> 
>                 
> 
>                 $search = array_keys($list);
> 
>                 $values = array_values($list);    
> 
>  
> 
>                 // Konvertierung
> 
>                 $typo3_db = mysqli_connect("localhost", "typo3", "password",
> "typo3");
> 
>                 if(!$typo3_db)
> 
>                 {
> 
>                   exit("Verbindungsfehler: " . mysqli_connect_error());
> 
>                 }
> 
>                 
> 
>                 //$tx_commerce_articles_entities = mysqli_query($typo3_db,
> "SELECT * FROM tx_commerce_articles_entities WHERE deleted=0 AND hidden=0
> AND article_type_uid=1");
> 
>                 $tx_commerce_articles_entities = mysqli_query($typo3_db,
> "SELECT * FROM tx_commerce_articles_entities WHERE deleted=0 AND hidden=0
> AND article_type_uid=1 AND uid=23534");
> 
>                 while($row =
> mysqli_fetch_object($tx_commerce_articles_entities))
> 
>                 {
> 
>                                $title = str_replace($search, $values,
> $row->title);
> 
>                                $description_extra = str_replace($search,
> $values, $row->description_extra);
> 
>                                $tx_nalmultitest_tests = str_replace($search,
> $values, $row->tx_nalmultitest_tests);
> 
>  
> 
>                                $update_sql = "UPDATE
> tx_commerce_articles_entities SET title='" . $title . "',
> description_extra='" . $description_extra . "', tx_nalmultitest_tests='" .
> $tx_nalmultitest_tests . "' WHERE uid='" . $row->uid . "'";
> 
>                                mysqli_query($typo3_db, $update_sql);
> 
>  
> 
>                                //echo mysqli_errno($typo3_db) . ": " .
> mysqli_error($typo3_db) . "\n";
> 
>                                
> 
>                                echo $update_sql;
> 
>                 }
> 
>  
> 
> ?>
> 
> --
> 
>  
> 
> Viele Grüße
> 
>  
> 
> Björn
> 
> _______________________________________________
> 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
> 
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german@lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
> 


-- 
Marc Willmann. TYPO3-Freelancer.
http://www.marc-willmann.de

Seelandstr. 14-16
D-23569 Lübeck

TYPO3 Certified Integrator
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an