2012-12-30 29 views

Odpowiedz

7
$str = "É"; //É 

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

echo $res; 
+0

'Ostrzeżenie: html_entity_decode() oczekuje, że parametr 2 będzie długi, łańcuch podany w/in/F6TSA na linii 4' http://3v4l.org/F6TSA –

+0

Działa teraz w PHP 5.4+, generuje powiadomienie w 5.0-5.3 ('Używanie niezdefiniowanej stałej ENT_HTML401'): http://3v4l.org/uWbbu –

+0

cóż, źle umieściłem argument kodowania na początku –

1

Konwersja hexit na dziesiętne i dodać 32, konwersja z powrotem do hexit.


lub używając mbstring:

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

Dodaje 32, aby uzyskać z wielkich na małe litery. – irrelephant

+0

Czy to nie działa tylko w ASCII? –

+0

@irrelephant: Tak, dzięki. –

0

Na moim serwerze nie mam zainstalowanego rozszerzenia mbstring. Aby uzyskać lepsze rozwiązanie dla różnych serwerów, należy użyć tego:

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