用iconv替换URL中的特殊字符不起作用

时间:2015-04-12 00:56:29

标签: php string url url-rewriting iconv

我的一些网址存在一个小问题。让我们说that $result['title'] =雪铁龙

在我的网址中,我希望这个词成为“雪铁龙”。以下函数完成所有操作,除了它删除了“ë”,所以我的url变成了“citron”。

<?php echo strtolower(preg_replace('/[^A-Za-z0-9\-]/', '', str_replace(' ', '-', $result['title'])));?>

我以为我可以使用iconv来解决这个问题......但它不起作用。 “雪铁龙”仍然被“香橼”取代。

<?php echo strtolower(preg_replace('/[^A-Za-z0-9\-]/', '', str_replace(' ', '-', iconv('UTF-8', 'ASCII//TRANSLIT', $result['title']))));?>

那么,我在这里错过了什么?

1 个答案:

答案 0 :(得分:2)

好的,我明白了。我需要设置目标语言环境。以下代码有效(因此“Citroën”变为“雪铁龙”):

<?php setlocale(LC_ALL, 'en_GB.utf8'); echo strtolower(preg_replace('/[^A-Za-z0-9\-]/', '', str_replace(' ', '-', iconv('UTF-8', 'ASCII//TRANSLIT', $result['titel']))));?>