2

在我们的语言中,我们在书写中使用了阿拉伯字符,但存在一些差异,icu 的 ushape.c(阿拉伯语整形器)仅适用于主要的阿拉伯语字符,并不能塑造我的语言特定字符(即 0x6D5 等)我已将 ushape.c 更改为工作用我的语言,它运行良好,除了字符,即 0x649,在阿拉伯语中它们只有 2 种形状,在我的语言中,我们有 4 种形状。

我已经更改了第 183 行

1                + 256 * 0x7F,/*0x0649*/

1+2+8             + 256 * 0x98 /*0x649*/

并更改了第 121 行

static const UChar yehHamzaToYeh[] =
{
/* isolated*/ 0xFEEF,
/* final   */ 0xFEF0
};

static const UChar yehHamzaToYeh[] =
    {
        /* isolated */0xFEEF, 
                       0xFBE8, // my language specific
                      0xFBE9,// my language specific
        /* final */   0xFEF0 
   };

来自ushape.c

现在它可以毫无问题地生成 3 个形状(开始、孤立和最终),但中间形状显示为正方形(缺少字符)。

我尝试用其他数字替换“* 0x98”,但这是我能得到的最好的。

我应该怎么办 ?

4

2 回答 2

0

ICU 确实似乎在使用某些语言(例如乌尔都语)进行塑造方面存在问题。

但是,您的特定字符 649 可能不是您要查找的字符。

U+649 是 alef maksura,看起来与由 ICU 正确塑造的Farsi Yeh U+6cc相同。

他们确实有不同的表现形式: Alef maksura 只有孤立的和最终的形式:U+feef U+fef0 Farsi yeh 有所有四种形式:U+fbfc U+fbfd U+fbfe U+fbff

于 2014-01-24T16:52:25.347 回答
0

维吾尔?我和几个人讨论了维吾尔语的渲染,不是这个特定的问题,而是一般性的问题。

当你说你得到一个正方形时,你得到什么 Unicode 字符?

您真正应该做的是向 ICU 提交错误并在那里讨论。这是一个功能请求,而不是一个使用问题。

我生疏的回忆是,对于维吾尔族来说,它对塑形的使用不同,你会希望在塑形器上基本上有不同的模式。

于 2010-10-04T18:19:14.817 回答