php - 如何在 PHP 中替换变音字符或非重音符号?

标签 php character-encoding diacritics

我有一个名字“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);

http://us2.php.net/manual/en/function.iconv.php

关于php - 如何在 PHP 中替换变音字符或非重音符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12833356/

相关文章:

java - HttpServletRequest.getParameter() 接收 "\r\n"用于 textarea 字段中的每一行

php - 客户端/服务器/数据库。我应该关心 utf-8 以外的其他字符集吗?

matlab - 如何以 Matlab eps 格式导出变音符号(或任何外来字符)?

python : working with german umlaut

php - WordPress - PHP 警告无法打开流 : No such file or directory (advanced-cache. php)

php - 使用 php mysql 和 inner join 重复结果

php - 检查提交时表单值是否已更改

php - 从数据库中删除字符 "Â"

character-encoding - 打开文件之前检测编码

php - 带有 ñ 或重音符号的友好 Url 问题字符串