微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > mt2503注音输入法“一”和 “|”切换问题

mt2503注音输入法“一”和 “|”切换问题

时间:10-02 整理:3721RD 点击:
[DESCRIPTION]
注音输入法下,按0键(BOPOMOFO LETTER I)出现的字符是“一”,但实际应该是“|”,或反之。如下图所示:


(图一)
[SOLUTION]

其实这是国际unicode组织与台湾地区习惯的差异问题,unicode定义的“0x3127”为“|”,而台湾地区的“0x3127”为“一”。若您所使用的字库
是按照unicode标准做的,即0x3127”为“|”,还会导致在不同地方同样的注音输入法下,显示的笔画不一致,如下图所示:


(图二)
同样是按0,在短信编辑界面出现的是“一”(如图一),而在联系人查找界面却是“|”(如图二)。这是因为图一所显示的是来自VK字库(mtk自
制)的,而图二显示的是来自您自行添加的字库的。
可选修改方式如下:
选择1.修改字库,使VK字库中的0x3127和您的字库中的0x3127一致。

选择2.不使用VK字库,所有字符都取自您添加的字库,需要确保您的字库涵盖了所有的繁体中文字符,包括符号等。修改文件fontres.c如下:
1.将sFontFamily pluto_ch_standardFamily = {6,{&Pluto_ch, &Pluto_ch, &Pluto_ch, &Pluto_ch, &Pluto_ch,&gVirtualKeyboardFont}};中的
gVirtualKeyboardFont替换为Pluto_ch(注意:您使用的可能不是Pluto_ch)

2.sCustFontData Pluto_ch = {
20, 20, 17, 3, 1, 50, 500,
(U8*)NULL,
(U8*)NULL, (U32*)NULL, (U8*)GB18030_Data, (U32*)GB18030_RangeOffset,
{
{FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH,FONTATTRIB_N
ORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH},
{FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH,FONTATTRIB_N
ORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH},
{FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH,FONTATTRIB_N
ORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH},
{FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH,FONTATTRIB_N
ORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH},
{FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH,FONTATTRIB_N
ORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH},
{0,0} },
&GB18030_RangeInfo};
将{0,0}修改为跟上面5行一样,即
{FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH,FONTATTRIB_N
ORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH}
(注意:由于使用的字库不同,除6-11行这6行外,其他信息可能与您的不一致)

选择3.若您需要的是将“|”改为“一”,可以在显示的时候将“|”转换为“一”,如ch=0x3127(“|”)为要显示的字符,修改ch=0x4e00(“一
”)即可。

666666

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top