我需要在PHP中进行转换,这是一个特殊字符,如ă -> a
,â -> a
,ț -> t
等等。
我特别需要链接,所以任何帮助都会受到赞赏。
答案 0 :(得分:9)
当我想获得纯文本时(来自utf-8)我正在使用iconv。
iconv('utf8', 'ascii//TRANSLIT', $text);
如果它仅用于您的网址,则urlencode可能是更好的主意。
答案 1 :(得分:3)
更新奥兰多的答案,我添加了一些更特殊的字符
function clean_special_chars ($s, $d=false) {
if($d) $s = utf8_decode( $s );
$chars = array(
'_' => '/`|´|\^|~|¨|ª|º|©|®/',
'a' => '/à|á|ả|ạ|ã|â|ầ|ấ|ẩ|ậ|ẫ|ă|ằ|ắ|ẳ|ặ|ẵ|ä|å|æ/',
'd' => '/đ/',
'e' => '/è|é|ẻ|ẹ|ẽ|ê|ề|ế|ể|ệ|ễ|ë/',
'i' => '/ì|í|ỉ|ị|ĩ|î|ï/',
'o' => '/ò|ó|ỏ|ọ|õ|ô|ồ|ố|ổ|ộ|ỗ|ö|ø/',
'u' => '/ù|ú|û|ũ|ü|ů|ủ|ụ|ư|ứ|ừ|ữ|ử|ự/',
'A' => '/À|Á|Ả|Ạ|Ã|Â|Ầ|Ấ|Ẩ|Ậ|Ẫ|Ă|Ằ|Ắ|Ẳ|Ặ|Ẵ|Ä|Å|Æ/',
'D' => '/Đ/',
'E' => '/È|É|Ẻ|Ẹ|Ẽ|Ê|Ề|Ế|Ể|Ệ|Ễ|Ê|Ë/',
'I' => '/Ì|Í|Ỉ|Ị|Ĩ|Î|Ï/',
'O' => '/Ò|Ó|Ỏ|Ọ|Õ|Ô|Ồ|Ố|Ổ|Ộ|Ỗ|Ö|Ø/',
'U' => '/Ù|Ú|Û|Ũ|Ü|Ů|Ủ|Ụ|Ư|Ứ|Ừ|Ữ|Ử|Ự/',
'c' => '/ć|ĉ|ç/',
'C' => '/Ć|Ĉ|Ç/',
'n' => '/ñ/',
'N' => '/Ñ/',
'y' => '/ý|ỳ|ỷ|ỵ|ỹ|ŷ|ÿ/',
'Y' => '/Ý|Ỳ|Ỷ|Ỵ|Ỹ|Ŷ|Ÿ/'
);
return preg_replace( $chars, array_keys( $chars ), $s );
}
答案 2 :(得分:0)
您可以使用:
function clean_special_chars( $s, $d=false )
{
if($d) $s = utf8_decode( $s );
$chars = array(
'_' => '/`|´|\^|~|¨|ª|º|©|®/',
'a' => '/à|á|â|ã|ä|å|æ/',
'e' => '/è|é|ê|ë/',
'i' => '/ì|í|î|ĩ|ï/',
'o' => '/ò|ó|ô|õ|ö|ø/',
'u' => '/ù|ú|û|ű|ü|ů/',
'A' => '/À|Á|Â|Ã|Ä|Å|Æ/',
'E' => '/È|É|Ê|Ë/',
'I' => '/Ì|Í|Î|Ĩ|Ï/',
'O' => '/Ò|Ó|Ô|Õ|Ö|Ø/',
'U' => '/Ù|Ú|Û|Ũ|Ü|Ů/',
'c' => '/ć|ĉ|ç/',
'C' => '/Ć|Ĉ|Ç/',
'n' => '/ñ/',
'N' => '/Ñ/',
'y' => '/ý|ŷ|ÿ/',
'Y' => '/Ý|Ŷ|Ÿ/'
);
return preg_replace( $chars, array_keys( $chars ), $s );
}