PHP转换来自例如的变音符号“ue”到“ü”

时间:2011-07-21 13:36:41

标签: php diacritics

有没有办法将表达式ae, Ae, oe, Oe, ue, Uess中的变音符号转换回原始的变音符号?重要的是拼写被观察为“teuer”!例如,“teuer”中的术语“teür”必须不得更改。谢谢!

3 个答案:

答案 0 :(得分:3)

iconv("utf-8","ascii//TRANSLIT",$input);

延长example

OR

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

参考this问题。

答案 1 :(得分:0)

我建议你转换“ue”,“oe”等出现的每个排列。 通过每个排列我的意思是,如果有3个出现首先只替换第一个,然后只替换第二个,然后只有第三个,然后是第一个和第二个,依此类推。

接下来,检查结果是否包含在标准拼写检查词典中。通过这种方式,您不必为异常创建自己的字典。

可以在ftp://ftp.ox.ac.uk/pub/wordlists/german/words.german.Z

上找到一个词汇表

答案 2 :(得分:0)

要做到这一点,这将是非常棘手的。当然没有任何内置函数可以做到。

我在这种事情中看到的大多数例子都是在相反的方向上工作(即用带有重音字符的字符串并用它们的ASCII等价替换它们)。我已经看到它完成了,它总是提供一个字符及其等价物的地图,并扫描字符串进行替换。

strtr() function的PHP手册页有一些关于你需要做的事情的好例子,但你避免特定例外的要求会使整个过程变得非常复杂。