W3C: Forbidden code point U+0084 und U+0093

  • Sagt mal, gibt es ein Tool oder sonst was, das mir anzeigt, wie der Code nun wirklich auf der Seite ist und nicht automatisch umwandelt in was "sichtbares". Ich verzweifel echt langsam. War gut dabei, aber nun seit 3 Stunden der gleiche Fehler und ich komme keinen Schritt weiter. Ich bin es inzwischen Leid, ich mag nicht mehr..... ;(

    Es ist ein Import von Awin. Schrieb ja schon bei einem anderen Post, dass die Zeichensätze wild mischen. Bisher ging das aber immer alles irgendwie durch Gefrickel, aber jetzt will das gar nicht.

    Im Import steht, also was ich als Rohdaten bekomme:

    "3 Geum „Mango“ und 3 Fetthennen"

    Also das steht das genau so im Export von denen. Versuche ich das nun z.B. mit "$data = str_replace("„", "", $data);" zu löschen, dann geht das nicht, die Zeichen bleiben da. Auch schon alle möglichen anderen Versionen versucht, also 00 davor oder das & als & angegeben, bleibt dabei. Auch das von W3C genannte U+0084 lässt sich nicht löschen.

    Ich habe so absolut keine Idee mehr und ehrlich auch keine Lust mehr. Bin nicht mehr belastbar. Will vorwärts kommen und dann immer so ein Mist :cursing:

    Hat einer eine Idee :?:


    Edit: Der Code oben passt, das Forum zeigt den so an, wie ich in getippt habe und nicht irgendwie anders. Braves Forum, Danke!

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • Mich würde mal interessieren wie die Daten davon verarbeitet werden. Denn einfache Nennung scheint keine Auswirkung zu haben ( gutes gutes Forum ;) )

    Also die Daten bekommst du ja, deine Datenbank ist die eigene oder? Dann kannste das doch einfach ersetzen :)

    Redest du dann von PHP? Ist das ein Problem eine "Tabelle" dann zu cachen und da ein Query drüber laufen zu lassen?

    So würde ich das machen, kann aber sein das ich absolut auf dem Holzweg bin

    wenn etwas möglich erscheint mach ich das, wenn das nicht klappt gehts ans unmögliche und ansonsten das undenkbare.

    - nun stolz rauchfrei - Ich denke also Bing ich!

    Support 24h Bereitschaft 0173 6107465 - NUR Für Kunden von SEO NW!

  • Ja, mich würde auch vieles daran interessieren. Mache nun schon den zweiten Tag damit rum.

    Die Daten kommen als GZ XML hier an. Dann entpacke ich sie. Anschließend wird mit "simplexml_load_string" ein PHP-Objekt aus dem XML gebildet und dann auf der Webseite angezeigt.

    So.

    Nach dem Entpacken sehe ich da eben den Code wie oben beschrieben.

    Schaue ich mir die Ausgabe auf der Webseite an, dann sind die Zeichen nicht sichtbar. Gehe ich in den Seitenquelltext, dann steht dort nur noch dieses Kästchen mit 0084 drinnen. Typisch Zeichensatzfehler eben. W3C meldet aber zeitgleich den Fehler wie im Titel.

    Also dachte ich mir, einfach ein $data = str_replace("„", "", $data); rein und gut ist. Das Zeichen brauch ich da nicht. Aber, die Zeichenkette "„" wird nicht gefunden. Auch nicht „ oder "U+0084".

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • Und eben das Problem, dass ich nicht weiß, was da irgendwie draus wurde, denn kein System zeigt mir das so an wie mein Editor nach dem Entpacken. Die Browser zeigen es entweder gar nicht an, oder eben als "Symbol mit Ziffern", aber nicht den genauen String.

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • Ahh ok, dass verstehe ich. Also über PHP wird das einfach über die Replace Funktion auch nicht gefunden. Mal ins blauerate... evtl geschützt die Zeichen? echt keine Ahnung, ich kenne die Funktion ja auch.

    Guck mal bitte hier

    https://www.edv-lehrgang.de/php-funktion-html-entity-decode/

    unter Flag Konstanten

    wenn etwas möglich erscheint mach ich das, wenn das nicht klappt gehts ans unmögliche und ansonsten das undenkbare.

    - nun stolz rauchfrei - Ich denke also Bing ich!

    Support 24h Bereitschaft 0173 6107465 - NUR Für Kunden von SEO NW!

  • Ja Alex, das habe ich schon durch mit dem encode. Das hilft aber nicht. Wenn ich das mache, dann wird aus dem bestimmten Zeichen ein Fragezeichen und aus allen anderen (die Funktionieren) "kryptische Darstellungen".

    Will sagen, da sind ja noch hunderte andere im XML, die sind so alle richtig und müssen genau so bleiben. Nur die beiden x84 und x93 müssen raus.

    Da gibt es z.B. noch einen anderen String, der auch falsch ist, aber einfach falsch geschrieben, Komma anstelle von Semikolon. Der lässt sich problemlos löschen bzw. ersetzen mit

    $data = str_replace("&ndash,", "-", $data);

    Das Problem ist auch, das ist in dem Dokument eine wilde Mischung aus normalen HTML, HTML-Entitiesund HEX-Entities. Daher will ich da auch mit encoding gar nicht lange rum machen, denn das zerlegt dann andere Stellen.

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • Aber eben hier nicht. Das ist z.B. so ein String.....

    <desc>Einfach eine Balkon-Geranie mit Traumbl&#xFC;ten! Die Bl&#xFC;ten dieser aus England stammenden Z&#xFC;chtung sind stark gef&#xFC;llt und sehen aus wie kleine B&#xE4;lle! Die tuffige Farbe in Wei&#xDF; mit Ros&#xE9; lebt &#xFC;ber dem tiefgr&#xFC;nen Laub so richtig auf. Von Mai bis Oktober bl&#xFC;ht diese Geranien-Rarit&#xE4;t durch und bringt Ihnen immer wieder Bl&#xFC;ten. Au&#xDF;er etwas Sonne und D&#xFC;nger braucht &#x84;Appleblossom&#x93; keine gro&#xDF;e Pflege. Ein Hit in Balkonk&#xE4;sten, K&#xFC;beln und Beeten. (Pelargonium zonale)</desc>

    Da wird alles richtig umgesetzt, bis auf die x84 und x93 recht weit hinten im Text

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • du versuchst doch sicherlich umzuwandeln. sagt der denn was? Also ausgabe ist ja korrekt, geht um den Zeichensatz. Evtl in htaccess nachreichen?

    Also wenn da was umgewandelt worden ist, dann sollte der das auch anzeigen. Du meintest aber das wird nicht umgewandelt!? ? Bitte manuell prüfen, wenn vielleicht doch aus den Rohdaten was gemacht worden ist, dann stimmt evtl mit deinem Zeichensatz was nicht. ( gibt dann evtl andere Problem bzw Lösungsansätze )

    Ist aber auch wieder ins Blaue geraten

    wenn etwas möglich erscheint mach ich das, wenn das nicht klappt gehts ans unmögliche und ansonsten das undenkbare.

    - nun stolz rauchfrei - Ich denke also Bing ich!

    Support 24h Bereitschaft 0173 6107465 - NUR Für Kunden von SEO NW!

  • Nein Alex, ich will nix umwandeln, das ist doch schon alles UTF-8. Ich will diese x84 einfach nur löschen, weil sie fehlerhaft angezeigt werden. Aber sie lassen sich nicht löschen, da der String nicht gefunden wird.

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • ok, mal bei Awin nachfragen ob die das sauber ausliefern können. :)

    komisch ist aber trotzdem das er das in der XML nicht findet und dann ersetzt bzw nichts draus macht.

    wenn etwas möglich erscheint mach ich das, wenn das nicht klappt gehts ans unmögliche und ansonsten das undenkbare.

    - nun stolz rauchfrei - Ich denke also Bing ich!

    Support 24h Bereitschaft 0173 6107465 - NUR Für Kunden von SEO NW!

  • hmm letzter versuch, wirste wahrscheinlich auch schon probiert haben

    recode_string schonmal probiert und dann danach gesucht? ich weiss geht über 2 ecken, aber mir fällt echt nix mehr ein

    wenn etwas möglich erscheint mach ich das, wenn das nicht klappt gehts ans unmögliche und ansonsten das undenkbare.

    - nun stolz rauchfrei - Ich denke also Bing ich!

    Support 24h Bereitschaft 0173 6107465 - NUR Für Kunden von SEO NW!

  • Ja eben, das ist ja das komische.

    Im Export steht es richtig. Auf dem Server, direkt nach dem Entpacken steht es auch richtig.

    Gebe ich den ganzen Import einfach per ECHO aus, wird es richtig angezeigt. Durchlaufe ich aber das XML und gehe dann Produkt für Produkt durch, dann machen genau diese beiden Zeichen die Probleme, keine anderen. Und ich kann eben im Produkt-Durchlauf dann nicht einfach löschen, weil es angeblich nicht da ist. Also irgendwas scheint mit den beiden Werten dann zu passieren, was auch immer. Da muss ja was sein, denn es zeigen ja alle was an, auch wenn halt was falsches.

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • https://www.php.net/manual/de/function.recode-string.php

    Mein Ansatz wäre da zu vermuten das er das "so" nicht findet. Aber evtl wenn man vorher umwandelt und dann danach sucht. Also wenn der Fehler da zu suchen sein sollte...

    wenn etwas möglich erscheint mach ich das, wenn das nicht klappt gehts ans unmögliche und ansonsten das undenkbare.

    - nun stolz rauchfrei - Ich denke also Bing ich!

    Support 24h Bereitschaft 0173 6107465 - NUR Für Kunden von SEO NW!