2012-12-30 10 views

risposta

7
$str = "É"; //É 

$res = mb_strtolower(html_entity_decode($str,ENT_COMPAT|ENT_HTML401,'UTF-8'),'UTF-8'); 

echo $res; 
+0

'Attenzione: html_entity_decode() si aspetta che il parametro 2 sia lungo, stringa data in/in/F6TSA sulla riga 4' http://3v4l.org/F6TSA –

+0

Funziona in PHP 5.4+ ora, genera un avviso in 5.0-5.3 ('Uso della costante indefinita ENT_HTML401'): http://3v4l.org/uWbbu –

+0

beh, ho sbagliato l'argomento di codifica in un primo momento –

1

Convertire il Hexit in decimale e aggiungere 32, riconvertire Hexit.


o utilizzando mbstring:

$res = mb_strtolower(mb_convert_encoding($str, 'UTF-8', 'HTML-ENTITIES'), 'UTF-8') 
+0

Si aggiunge 32 per passare da lettere maiuscole a lettere minuscole. – irrelephant

+0

Non funziona solo per ASCII? –

+0

@irrelephant: Sì, lo è, grazie. –

0

Sul mio server, non ho installato l'estensione mbstring. Per una migliore soluzione cross-server dovresti invece utilizzare questo:

echo htmlentities(strtoupper(html_entity_decode($str))); 
Problemi correlati