Marcel Polty: htmlentities und utf8

Hallo,

ich hab ein mehrsprachiges Shopsystem mit utf8 erstellt. Soweit funktioniert alles wunderbar und ist auch valide. Wenn jetzt aber ein Kunde mit & im Namen angelegt wird, dann wird das & als Fehler angezeigt weil es & heißen müsste. In diesem Fall ist es nur ein einziger Fehler. Wenn jetzt aber ein Artikelliste mit diesem Zeichen drin aufgeht, dann können es sehr schnell sehr viele Fehler werden.
Das Problem bekommt man normalerweise mit htmlentities geregelt. Nicht aber bei utf8. Da zerschießt htmlentities nämlich alle Umlaute.

Weiß jemand was man dagegen tun kann.

Danke und Gruß

Marcel

  1. hi,

    Das Problem bekommt man normalerweise mit htmlentities geregelt.

    htmlspecialchars reicht aus.

    Nicht aber bei utf8. Da zerschießt htmlentities nämlich alle Umlaute.

    Definiere "zerschiesst".

    Wenn du die Umlaute einfach nur UTF-8-kodiert vorliegen hast, wüsste ich nicht, was htmlentities da "zerschiessen" sollte.

    Dass die verwendete Kodierung als optionaler Parameter angegeben werden kann, hast du bereits berücksichtigt?

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
  2. Was für UTF-8 nicht falsch sein muss.

    Was du aber machen könntest wäre, ein Array anzulegen, dass die von dir gewünschten Zeichen enthält. Dann schreibst du dir eine eigene Funktion und schon ersetzt dir diese nur die gewünschten Werte.

    1. Was für UTF-8 nicht falsch sein muss.

      Was du aber machen könntest wäre, ein Array anzulegen, dass die von dir gewünschten Zeichen enthält. Dann schreibst du dir eine eigene Funktion und schon ersetzt dir diese nur die gewünschten Werte.

      Wozu dieser Riesenaufwand?

      htmlentities() sollte man nicht benutzen - insbesondere dann nicht, wenn man sowieso UTF-8 benutzt.

      htmlspecialchars() reicht vollkommen aus. Andere Zeichen als <, > und & muss man ja nicht in Entities wandeln.