[gelöst] UFT-8 Codierung, falsche Anzeige von Umlauten / Sonderzeichen im Node-Title (wie & ' (Module: Feeds / Feeds Temper))
am 16.04.2012 - 13:57 Uhr in
Guten Tag liebe Community,
momentan arbeite ich mit dem Moduel "Feeds" zum Importieren von CSV-Dateien. Diese werden aus Excel erstellt. Im CSV-Parser nutze ich die Funktion uft8_encode um den Output des Iterators für Drupal kompatible zu halten. Wenn ich mir über die Debug-Funktion "dpm()" nun das Ergebnis der Funktion zurückgeben lasse, sind alle Umlaute und Sonderzeichen korrekt dargestellt. Rufe ich allerdings die erzeugten Nodes auf, stellt meine Browser (FF, Chrome) den Inhalt folgendermaße da:
à à à ü ö ä
statt
Ä Ü Ö ü ö ä,
Des Weiteren erhalte folgende Fehlermeldung "ab und zu" beim Import ein und derselben Daten, welche nicht rekonstruierbaren ist, und einen HTTP.exe Prozess auf meinem Rechner startet, welche nicht von selbst abbricht und sich eine CPU-Leistung von 99% zuteilt.
An AJAX HTTP error occurred. HTTP Result Code: 200 Debugging information follows
Dieses Problem treibt mich nun schon seit heute Morgen ein wenig verrückt, und ich finde im Netz leider keine hilfreichen Informationen.
Mein System läuft auf XAMPP mit Drupal 7.12
Edit1:
Konnte den Parser jetzt so abändern das Umlaute korrekt dargestellt werden, allerdings enstehen nun folgende Fehler:
I'm walking
I'm walking
Küche & Co.
Küche & Co.
Edit2:
Ich benutze nun Feeds Tamper. Hier kann man die gemappten Felder mit Filtern etc. versehen. Meinem Title-Feld habe ich nun einen HTML entity decode hinzugefügt. Allerdings werden diese Sonderzeichen immernoch falsch dargestellt. Benutze ich den Filter für ein nicht-Title-Feld, so funktioniert er. Bin einwenig Ratlos.
- Anmelden oder Registrieren um Kommentare zu schreiben
"uft8_encode()" mal weglassen
am 16.04.2012 - 17:29 Uhr
Hatte ein ähnliches Problem neulich mit MediaWiki: http://www.mediawiki.org/wiki/Extension_talk:Categorize#Encoding_error_w...
Wenn die Daten schon in UTF-8 aus der Datenbank kommen, was standardmäßig der Fall sein dürfte, richtet uft8_encode() eher Schaden an:
Please note that utf8_encode only converts a string encoded in ISO-8859-1 to UTF-8. A more appropriate name for it would be 'iso88591_to_utf8'. If your text is not encoded in ISO-8859-1, you do not need this function. If your text is already in UTF-8, you do not need this function. In fact, applying this function to text that is not encoded in ISO-8859-1 will most likely simply garble that text.
http://php.net/manual/de/function.utf8-encode.php
Hi, ja ja, das leidige Thema
am 16.04.2012 - 18:00 Uhr
Hi,
ja ja, das leidige Thema mit den Umlauten.
1.
Schau mal wenn Du auf Deiner Seite bist bei Firefox -> Ansicht -> Zeichencodierung , was steht da bei Dir?
Hast du den HTML HEAD Content
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
2. CSV ist ein sehr schlechtes Format für den Import Export.
Die meisten Editoren und Tools behandeln CSV mit dem im System eingestellten Charset.
Wenn es Dir möglich ist solltest Du XML verwenden, das ist immer UTF-8
Sollte das CSV File wirklich UTF-8 kodiert sein und der Header gesetzt sein
musst Du in der Datenbank nachsehen ob die Umlaute dort falsch gespeichert wurden.
Grüsse
PS:
Defaultmässig ist MYSQL auf latin1_swedish_ci eingestellt (MYSQL kommt aus Schweden)
Hi, danke für eure Hilfe, ich
am 17.04.2012 - 09:44 Uhr
Hi,
danke für eure Hilfe, ich habe den Fehler allerdings schon gefunden. Im CSV-Parser der Feeds-Moduls musste man in Zeile 199 folgenden Code einfügen, um die Zeichenkodierung zu ändern.
$line = iconv('ISO-8859-1', 'UTF-8', $line);
Allerdings erhalte ich nun einen neuen Fehler. Hierfür werde ich allerdings auch ein neues Thema erstellen, da ich glaube das dies Übersichtlicher ist.
Bitte als [gelöst] markieren
am 17.04.2012 - 14:50 Uhr
sowie Problem und Lösung auch in der Issue Queue des entsprechenden Moduls posten (sofern nicht schon geschehen), z.B. hier: "CSV import problems with characters like æ ø å ö ä ü"
Danke!
Feeds: BOM aus UTF-8-Dateien entfernen
am 20.04.2012 - 07:31 Uhr
Ein weiterer möglicher Verdächtiger: Remove BOM from UTF-8 files in Drupal 6?