Hallo Liebes Forum,
ich habe ein Problem mit dem Zeichensatz.
Kurze Info zu meinem Flow (grob und verkürzt):
- XML Datei (Lagerartikel) per FTPDownload herunterladen
- XML aufbereiten, sodass ich später ein Spreadsheet habe
- Artikelmerkmale (Fabre:rot, Größe: XL etx) als eigenes Spreadsheet aufbereiten
- Im Shop angelegte Merkmale per API laden und aufbereiten
- Vergleich von Artikelmerkmalen und Shopmerkmalen + Zuweisung von Merkmal IDs
- Wenn noch kein Shopmerkmal existiert → Neues Merkmal anlegen per API Call
In der XML stehen die Merkmale nur als String. Das heißt ich muss die XML Merkmale und die Shop Merkmale anhand der Namen vergleichen, damit die XML Merkmale dann auch die richtigen IDs zugewiesen bekommen.
Hier kommt nun das Problem mit dem Zeichensatz.
Beim XMLReader habe ich alle Einstellungen für sourcefileCharset ausprobiert, damit mir z.B. „ß“ korrekt dargestellt wird. Bei meiner kleineren Test XML mit 3 Artikeln hat hier UTF-8 super funktioniert und „ß“ wird korrekt dargestellt. Bei der richtigen XML (deutlich mehr Artikel) wirft mir der Step nun den Fehler „Fehler beim Parsing“. Nachdem ich sourcefileCharset geleert habe funktioniert zwar der Step wieder, aber die Sonderzeichen werden nicht richtig ausgegeben. Ich gehe davon aus, dass die XML weitere Zeichen enthält, mit der UTF-8 (auch andere Zeichensätze habe ich getestet) nicht arbeiten kann. In der XML steht als encoding „ISO-8859-1“. Wenn ich das im sourcefileCharset auswähle habe ich allerdings solche Ausgaben : weiÃ
Nun die Folgeprobleme:
Wenn ich mir die Shopmerkmale per API herunterlade habe ich z.B. das Merkmal Farbe:weiß.
Wenn ich dieses dann mit den XML-Merkmalen vergleiche, kommt hier natürlich keine Übereinstimmung, da weiß != weià . Dadurch legt mein Flow dann (theoretisch korrekt) ein neues Merkmal an, da dieses kein Gegenstück in den Shopmerkmalen hat.
Das nächste Folgeproblem ist, dass mein API Call, um neue Merkmale anzulegen, keine Sonderzeichen mag. Wenn der Call Umlaute oder Sonderzeichen enthält, wird der Step zwar ausgeführt aber der Call zum Server an sich gibt mir „Invalid JSON“ zurück. Ohne Umlaute und Sonderzeichen wird der Call ausgeführt.
Leider habe ich keinerlei Zugriff auf die Ausgabe der XML. Diese wird von jemand anderem erstellt und von mir dann weiterverarbeitet.
Gibt es hier noch alternative Einstellungen, die mit Sonderzeichen umgehen, bzw. die auf irgendeine Art verarbeiten können? Oder eine Funktion ähnlich wie ?number die Umlaute und Sonderzeichen umwandelt?
Ich habe es mit ?json_string probiert, dabei kam allerdings weiÃ\u009F heraus.
Über Hilfe würde ich mich sehr freuen.
Beste Grüße,
Franziska