2012-03-15 46 views
8

Tôi cố gắng để chuyển đổi ký tự như:Làm cách nào để chuyển đổi các ký tự đặc biệt thành các ký tự bình thường?

ë, ä, ï, ö, etc. 

Để nhân vật bình thường như:

e, a, i, o, etc. 

cách tốt nhất để làm điều này là gì? Tôi đã thử nhiều thứ, như preg_replace và str_replace.

Ai đó có thể giúp tôi không?

- EDIT -

Những gì tôi cố gắng, là:

$ts = array("[À-Å]","Æ","Ç","[È-Ë]","/[Ì-Ï]/","/Ð/","/Ñ/","/[Ò-ÖØ]/","/×/","/[Ù-Ü]/","/[Ý-ß]/","/[à-å]/","/æ/","/ç/","/[è-ë]/","/[ì-ï]/","/ð/","/ñ/","/[ò-öø]/","/÷/","/[ù-ü]/","/[ý-ÿ]/"); 

$tn = array("A","AE","C","E","I","D","N","O","X","U","Y","a","ae","c","e","i","d","n","o","x","u","y"); 

$title = preg_replace($ts, $tn, $text); 
+1

thể trùng lặp của [PHP Chuyển ngữ] (http://stackoverflow.com/questions/1284535/php-transliteration) – Quentin

+0

Bạn không hiển thị những gì bạn đã cố gắng :( – Evert

+0

nhân vật Các đúng hạn ở đây sẽ được có dấu Các ký tự đặc biệt là những thứ như $ # @/\ etc. – lgaud

Trả lời

25

thử này .. làm việc cho tôi.

iconv('utf-8', 'ascii//TRANSLIT', $text); 
+3

Tôi đã thử utf-8 thay vì utf8 và đã hoạt động! Cảm ơn! – Mossawi

+3

utf8 và utf-8 không hoạt động đối với tôi. – CREE7EN

+0

@ CREE7EN Hãy thử đặt ngôn ngữ trước: 'setlocale (LC_CTYPE, 'en_US.UTF8');' Sau khi mã hóa đó có vẻ tốt hơn. – Neograph734

16

tôi thích câu trả lời của các câu trả lời, nhưng để hoàn thành, điều này phù hợp với tôi.

preg_replace("/&([a-z])[a-z]+;/i", "$1", htmlentities($foo)); 
Các vấn đề liên quan