为什么阿拉伯语和波斯语的unicode是一样的?

时间:2013-09-07 00:11:48

标签: php unicode ascii

我在我的php中编写了这段代码

echo ord("ت").' - '.ord("ت")."<br />";
echo ord("و").' - '.ord("و")."<br />";
echo ord("ك").' - '.ord("ک")."<br />";
echo ord("ض").' - '.ord("ض")."<br />";
echo ord("ي").' - '.ord("ی")."<br />";
echo ord("ح").' - '.ord("ح")."<br />";
echo ord("م").' - '.ord("م")."<br />";
echo ord("ن").' - '.ord("ن")."<br />";
echo ord("ا").' - '.ord("ا")."<br />";
echo ord("أ").' - '.ord("آ")."<br />";
echo ord("ث").' - '.ord("ث")."<br />";
echo ord("ع").' - '.ord("ع")."<br />";
echo ord("ب").' - '.ord("ب")."<br />";

第一个是阿拉伯语字符,第二个是波斯语,但代码的结果是:

216 - 216
217 - 217
217 - 218
216 - 216
217 - 219
216 - 216
217 - 217
217 - 217
216 - 216
216 - 216
216 - 216
216 - 216
216 - 216

这个节目很多字符都有相同的ASCII码 我必须从ascii代码中检测语言,但似乎这是不可能的!!

1 个答案:

答案 0 :(得分:2)

Unicode编号是相同的,因为Unicode不会按语言区分字符。波斯语使用阿拉伯语脚本(书写系统),但增加了阿拉伯语,因此例如波斯语中使用的字母“Ê”与阿拉伯语中使用的“Ê”完全相同,U + 062A阿拉伯语字母TEH。

只能通过查看字符来区分语言。您只能确定给定的字符串可能是某些语言的表达式,可能是几十种或几百种语言的集合。

除此之外,正如评论中的@Musa评论一样,ord仅针对ASCII字符定义,而阿拉伯字母不属于ASCII。 ASCII是一组128个字符,由基本的拉丁字母,常用数字,标点符号和特殊字符的集合以及一些控制字符组成。所以用ord进行测试在这里没用。