我有一个名字“Göran”,我希望将其转换为“Goran”,这意味着我需要不带口音特定的词。但我所尝试的似乎并没有取消重音所有单词。
这是我用来 Unaccent 的代码:
private function Unaccent($string)
{
return preg_replace('~&([a-z]{1,2})(?:acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml|caron);~i', '$1', htmlentities($string, ENT_COMPAT, 'UTF-8'));
}
不起作用的地方(不正确的匹配):我的意思是它没有在右侧给出预期的结果,
JÃŒrgen => Juergen
InÚs => Ines
工作地点(正确匹配):
Göran => Goran
Jørgen Ole => Jorgen
Jérôme => Jerome
可能是什么原因?怎么修?您有更好的方法来处理所有情况吗?
最佳答案
这可能就是您正在寻找的
How to convert special characters to normal characters?
但使用“utf-8”代替。
$text = iconv('utf-8', 'ascii//TRANSLIT', $text);
关于php - 如何在 PHP 中替换变音字符或非重音符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12833356/