2010-01-27 23 views
5

Ich frage mich, ob es eine Möglichkeit gibt, die Standardcodierung für htmlentities() zu definieren. Ich habe ein großes Projekt, das htmlentities Aufrufe überall verwendet, und fragte mich, ob es eine einfache Möglichkeit gab, es von ISO-8859-1 zu UTF-8 als die Standardzeichencodierung zu setzen, mit etwas einfach wie init_set. Oder möglicherweise mit einer separaten Deklaration.Define Charset für htmlentities()

Failing das, ich würde nicht gegen die Umbenennung und überschreiben die htmlentities Funktion immer Unicode verwenden, aber ich bin widerwillig, etwas als freaky (für mich) als PECL apd zu installieren.

+1

Warum nicht einfach htmlspecialchars verwenden? htmlentities konvertiert weit mehr als Sie für HTML benötigen, und aufgrund der Art und Weise, warum nicht nur htmlspecialchars und UTF-8 funktioniert, wird keiner der Zeichen in der Mitte eines Multi-Byte-UTF-8-Zeichen, das bedeutet, dass es erscheint Genau genommen spielt es keine Rolle, ob es nur ISO-8859-1 annimmt. –

Antwort

8

Da die Handbuchseite nichts über das Ändern des Standardzeichensatzes sagt, glaube ich nicht, dass es einen Weg gibt, dies zu tun; und ich erinnere mich nicht daran jemals etwas gesehen zu haben.

ich nicht so etwas wie APD verwenden würde entweder - stattdessen würde ich wahrscheinlich:

  • meine eigene Funktion erstellen, die htmlentities mit den richtigen Parametern
  • und ersetzen jeden Anruf zu htmlentities durch ein ruft rufen Sie an meine neue Funktion (dies wahrscheinlich automatisch durchgeführt werden kann, ein paar Zeilen von Skripten)
0

@Pascal MARTIN-Lösung auf jeden Fall richtig ist, können Sie auch utf8-encode t verwenden können o Konvertiere ISO-8859-1 in UTF-8.

Und utf8_decode UTF-8 in ISO-8859-1 zu konvertieren.

+0

Das Problem ist nicht der Zeichensatz, in dem sich die Zeichenfolge befindet, sondern wie htmlentities damit umgehen. – amphetamachine