Erhard: You have used an illegal character in your text.

Ich habe in meiner Datenbank MYSQL (wirklich) sehr viele Texte,
beim Ausgeben kommt bei machen Texten der Fehler

You have used an illegal character in your text.

ich gebe die Daten mit htmlentities($string) aus

kann mir jemand helfen, wie ich diesen Fehler vermeide!

Erhard

  1. Om nah hoo pez nyeetz, Erhard!

    htmlspecialchars() sollte reichen, im Handbuch findest du auch, wie du mit ungültigen Zeichen umgehen kannst, was aus meiner Sicht nur die Symptome beseitigt, nicht die Ursache.

    Bei einer konsequenten Verwendung von UTF-8 sollte es keine ungültigen Zeichen geben.

    Matthias

    --
    Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Ball und Ballast.

  2. Hallo,

    Ich habe in meiner Datenbank MYSQL (wirklich) sehr viele Texte,
    beim Ausgeben kommt bei machen Texten der Fehler

    You have used an illegal character in your text.

    wer meldet diesen Fehler? Ich vermute mySQL, nicht PHP, denn erfahrungsgemäß sind mySQL-Fehlermeldungen meist etwas eloquenter ausformuliert, die von PHP dagegen eher knapp und sehr simpel.

    ich gebe die Daten mit htmlentities($string) aus

    Nein. Das produziert keine Ausgabe. Und htmlentities() ist auch nicht unbedingt ratsam; normalerweise ist htmlspecialchars() völlig ausreichend - vorausgesetzt, du verwendest eine Zeichencodierung, die alle benutzten Zeichen enthält (z.B. UTF-8), und verwendest sie konsequent.

    kann mir jemand helfen, wie ich diesen Fehler vermeide!

    "An illegal character" deutet darauf hin, dass an irgendeiner Stelle von einer in die andere Zeichencodierung konvertiert wird und dabei Zeichen auftauchen, die in der Zielcodierung nicht darstellbar sind. Es könnte beispielsweise sein, dass die Feldinhalte in der DB in UTF-8 codiert sind, die Schnittstelle zwischen mySQL und PHP aber eine 1-Byte-Codierung (z.B. aus der ISO-8859-Familie) verwendet.

    So long,
     Martin

    --
    Computer lösen für uns Probleme, die wir ohne sie gar nicht hätten.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
  3. Tach!

    beim Ausgeben kommt bei machen Texten der Fehler
    You have used an illegal character in your text.

    Wenn ich nach dieser Meldug suche, dann ist nicht PHP sondern der W3C-Validator der Ausgabende. Dieser erklärt dazu, dass du irgendwelche Zeichen aus einem undefinierten Bereich im Dokument stehen hast. Das wären zum Beispiel Zeichen, die Win-1252 an die Positionen 0x80..0x9F legt. Die sind in anderen Kodierungen, insbesondere ISO-8859-1 und UTF-8, ungültig.

    ich gebe die Daten mit htmlentities($string) aus
    kann mir jemand helfen, wie ich diesen Fehler vermeide!

    htmlentities() ist normalerweise überflüssig, und üblicherweise ein Zeichen dafür, dass man die Grundlagen der Zeichenkodierung nicht kennt und/oder die verwendete Zeichenkodierungen nicht explizit angibt. Ansonsten reicht nämlich htmlspecialchars() für die vier/fünf HTML-eigenen Zeichen.

    Außerdem ist htmlentities() auch kein magisches Werkzeug, das aus jeder Irgendwie-Kodierung ein gültiges Ergebnis zaubern kann.

    Ich habe in meiner Datenbank MYSQL (wirklich) sehr viele Texte,

    Welche Kodierungsangabe haben die einzelenen Varchar-Felder? Welche Kodierung handelst du mit dem MySQL_Server aus? Welche Kodierungsangabe steht in den HTML-Dokumenten (oder im HTTP-Header)?

    dedlfix.

  4. hi Erhard,

    Ich habe in meiner Datenbank MYSQL (wirklich) sehr viele Texte,
    beim Ausgeben kommt bei machen Texten der Fehler

    You have used an illegal character in your text.

    Zeig mal das Zeichen. Evntl. können wir das legalisieren.

    Horst

    --
    Das Schwarze an den Füßen sind nur Fliegen.