函数转换所有其他字符,只是"ø"什么是UTF-8字符,而不是,所有其他字符(如"Ç,Č,Ć,Ç,Š,ž,Đ,Ж"等(正常转换为ascii。。。
这是我使用的功能:
function toAscii($str, $replace=array(), $delimiter='-') {
if( !empty($replace) ) {
$str = str_replace((array)$replace, ' ', $str);
}
$clean = iconv('UTF-8', 'ASCII//TRANSLIT', $str);
$clean = preg_replace("/[^a-zA-Z0-9'/_|+ -]/", '', $clean);
$clean = strtolower(trim($clean, '-'));
$clean = preg_replace("/['/()_|+ -]+/", $delimiter, $clean);
return $clean;
}
我需要它的ascii网址。
iconv"音译为ascii"函数不可靠。从任意的unicode代码点到ascii,并不总是有一个通用的音译或有意义的音译。没有一个unicode标准来说明如何做到这一点(尽管有一次有一个草案,但由于不成功而被放弃(。所以,无论如何,没有一种可靠的方法可以做到这一点,或者iconv函数也不是。事情就是这样。
正如其他人所评论的那样,有一种标准的方法可以将unicode放入URL中。尝试将任意unicode代码点音译为ascii不太可能是解决问题的正确方法;即使对于正在发生的音译,你也可能失去意义。