猿问

PHP:用UTF-8字符串中最接近的7位ASCII等效替换变音符号

PHP:用UTF-8字符串中最接近的7位ASCII等效替换变音符号

我想要做的是从字符串中删除所有重音符号和变音符号,将“lärm”变为“larm”或将“andré”变为“andre”。我试图做的是utf8_decode字符串,然后使用strtr,但由于我的源文件保存为UTF-8文件,我不能输入所有变音符号的ISO-8859-15字符 - 编辑器插入UTF-8字符。

显然,一个解决方案是拥有一个ISO-8859-15文件的包含,但必须有一个更好的方法,而不是另一个必需的包含?

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

更新:也许我尝试做的事情有点不准确:我实际上并不想删除变音符号,而是将它们替换为最接近的“一个字符ASCII”等价物。


慕后森
浏览 577回答 3
3回答

慕工程0101907

iconv("utf-8","ascii//TRANSLIT",$input);扩展示例
随时随地看视频慕课网APP
我要回答