ICU4C - > ushape.c在塑造中缺少性格?

时间:2010-10-04 13:59:52

标签: icu

在我们的语言中,我们在写作中使用阿拉伯字符,但存在一些差异, 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”,但这是我能得到的最好的结果。

我该怎么办?

2 个答案:

答案 0 :(得分:0)

维吾尔人?我与几个人讨论了维吾尔族的渲染问题,而不是这个问题,但总的来说。

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

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

我生锈的回忆是,对于维吾尔来说,它会对形状进行不同的使用,你会希望在整形器上有一个不同的模式。

答案 1 :(得分:0)

ICU确实似乎在使用某些语言进行整形方面存在问题,例如:乌尔都语。

然而,您的特定角色649可能不是您正在寻找的角色。

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

他们有不同的演示形式: Alef maksura只有孤立的最终形式:U+feef U+fef0 Farsi yeh有四种形式:U+fbfc U+fbfd U+fbfe U+fbff