2010-01-27 15 views
5

Mi chiedevo se esistesse un modo per definire la codifica predefinita per htmlentities(). Ho un grande progetto che utilizza chiamate htmlentities dappertutto, e mi chiedevo se esistesse un modo semplice per impostarlo da ISO-8859-1 a UTF-8 come codifica predefinita dei caratteri, usando qualcosa di semplice come init_set. O eventualmente con una dichiarazione separata namespace.Definire il set di caratteri predefinito per htmlentities()

In caso contrario, non sarei contrario a ridenominare e ignorare la funzione htmlentities per utilizzare sempre Unicode, ma sono riluttante ad installare qualcosa di così strano (per me) come PECL apd.

+1

Perché non usare solo htmlspecialchars? htmlentities converte molto più del necessario per HTML e, a causa del modo in cui non utilizzare solo htmlspecialchars e UTF-8, nessuno dei caratteri che converte verrà visualizzato nel mezzo di un carattere UTF-8 multi-byte, il che significa che , in senso stretto, non importa se assume solo ISO-8859-1. –

risposta

8

Poiché la pagina di manuale non dice nulla sulla modifica del set di caratteri predefinito, non penso che ci sia un modo per farlo; e non ricordo di aver mai visto nulla a riguardo.

Non vorrei usare qualcosa di simile APD o - invece, probabilmente:

  • creare la mia propria funzione, che chiama htmlentities con i giusti parametri
  • e sostituire ogni chiamata a htmlentities da un chiamare alla mia nuova funzione (questo può probabilmente essere fatto automaticamente, utilizzando poche righe di script)
0

soluzione @Pascal MARTIN è sicuramente corretto, è possibile utilizzare anche utf8-encode t o convertire ISO-8859-1 in UTF-8.

E utf8_decode per convertire UTF-8 in ISO-8859-1.

+0

Il problema non è il set di caratteri in cui si trova la stringa, ma come htmlentities si occupa di esso. – amphetamachine

Problemi correlati