将特殊字符(即变音符号)转换为ascii中最可能的表示

时间:2011-07-28 09:37:41

标签: php ascii special-characters diacritics non-ascii-characters

我正在寻找一种方法或转换表,它知道如何将变音符号和特殊字符转换为ascii中最可能的表示形式。

示例:

Ärger = aerger
Bôhme = bohme
Søren = soeren
pjérà = pjera

有人有任何想法吗?

更新: 除了良好的接受答案,我还发现PECL Normalizer非常有趣,但我不能使用它,因为服务器没有它而且没有为我更改。

如果此处的答案对您没有帮助,请查看this Question

1 个答案:

答案 0 :(得分:15)

我发现iconv完全不可靠,我不喜欢preg_match解决方案和大数组...所以我最喜欢的方式是......

    function toASCII( $str )
    {
        return strtr(utf8_decode($str), 
            utf8_decode('ŠŒŽšœžŸ¥µÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿ'),
            'SOZsozYYuAAAAAAACEEEEIIIIDNOOOOOOUUUUYsaaaaaaaceeeeiiiionoooooouuuuyy');
    }