比较不同语言的字母

时间:2010-09-03 21:17:38

标签: php character-encoding

在不同的字母表中有一些字母,看起来完全一样。

喜欢拉丁语中的A和西里尔语中的А

当我通过utf-8脚本调用其中一个时,他们是否扮演同样的角色?

如果不是,如何知道给定字母的代码?

2 个答案:

答案 0 :(得分:7)

“扮演同样的角色”并不清楚你的意思。

它们肯定不是同一个角色,虽然它们似乎可能在渲染时出现。

这与许多字体中“l”(小写L)和“I”(大写i)之间的混淆完全类似。

如果您想将AА视为相同,则必须将西里尔语音译为拉丁语。不幸的是,PHP对音译的支持是粗略的。您可以使用iconv,这不是很好 - 如果您音译为ASCII,您将丢失无法用ASCII表示的所有

Unicode PHP实现(本应该是PHP 6)有一个名为str_transliterate的函数,它使用了ICU音译API。希望音译将在未来添加到intl扩展(当前的ICU包装器)中。

答案 1 :(得分:1)

您可能对ICU中的“spoof detection”API感兴趣。我认为它的目的是报告你的两个“视觉上容易混淆”。