Unicode 基于形状的阿拉伯字符计数

Unicode 基于形状的阿拉伯字符计数,unicode,arabic,Unicode,Arabic,阿拉伯字符根据其在单词中的位置改变其形状。我有一篇很长的阿拉伯语文本。我想数一数文本中出现的所有不同的阿拉伯形状。然而javascript的功能让我失望 例如,这是阿拉伯语的“L”=>ل 这是阿拉伯语的“alif”=>ا 如果一个单词中的“L”之后是“alif”,那么它们会一起形成这个形状 现在,javascripts codesPointAt()在输出字母的unicode编号之前,先分离单词的所有字母。因此,它将ل和ا视为不同的字符,这不是我想要的 我使用PHP作为服务器端脚本。据我所知,它没

阿拉伯字符根据其在单词中的位置改变其形状。我有一篇很长的阿拉伯语文本。我想数一数文本中出现的所有不同的阿拉伯形状。然而javascript的功能让我失望

例如,这是阿拉伯语的“L”=>
ل

这是阿拉伯语的“alif”=>
ا

如果一个单词中的“L”之后是“alif”,那么它们会一起形成这个形状

现在,javascripts codesPointAt()在输出字母的unicode编号之前,先分离单词的所有字母。因此,它将
ل
ا
视为不同的字符,这不是我想要的

我使用PHP作为服务器端脚本。据我所知,它没有unicode函数


之后我的选项是什么?

这是从Unicode角度看表示形式和基本字符之间的区别。请参阅Unicode联盟。由于您要计算的是字形而不是实际字符,请查看。函数font.layout(string)将返回一个GlyphRun对象,该对象包含显示字符串所需的图示符。然后,您可以计算这些字符,而不是底层字符。从Unicode的角度来看,这就是表示形式和基本字符之间的区别。请参阅Unicode联盟。由于您要计算的是字形而不是实际字符,请查看。函数font.layout(string)将返回一个GlyphRun对象,该对象包含显示字符串所需的图示符。然后可以计算这些字符,而不是底层字符。