阿拉伯语内容复合词中单独字母的宽度

时间:2016-12-21 17:38:58

标签: javascript jquery arabic

我有阿拉伯语内容,这是ضضضضضضض之类的单词的复合词。我想获得给定单词的第一个字母的宽度(与独立字母的宽度不同,即ض)。

我使用getBoundingClientRect()方法并尝试获取宽度,但是它给出了一个独立字符的宽度,而不是通过value方法返回的getBoundingClientRect更复杂的复合字符的宽度

在上面的单词中,由getBoundingClientRect()给出的ض(第一个字母)的宽度是16.109375,但是该字符是复合符号,即可见,如你所见,它被截断。它小于给定值。

我尝试通过减去给定getBoundingClientRect()的宽度来获得第一个字母的EXACT(可见)宽度,前两个字符和第一个字符的宽度是12px,这是正确的。

有没有比这更好的方法,以便我可以在任何单词中得到每个字符的确切可见宽度?

1 个答案:

答案 0 :(得分:3)

你应该知道你看到的unicode不是存储的unicode。示例ضضضضضضض中的所有字母都存储为标准Dhad ض \u0636,但显示为:

  1. ﺿ \ufebf(开始)
  2. \ufec0(中)
  3. \ufebe(结束)
  4. \ufebd(独立)
  5. 因此,要获得实际长度,您应该在这些表示unicodes上应用长度函数。