微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > mt2503 在电话薄排序时,将英文条目放到其他语言后面,现在英文是排在最前面

mt2503 在电话薄排序时,将英文条目放到其他语言后面,现在英文是排在最前面

时间:10-02 整理:3721RD 点击:
[DESCRIPTION]
由于英文的UCS2编码是最小的,所以在以UCS2编码大小为排序条件时,英文总是排在前面;电话簿中姓名就是使用
UCS2编码的大小排序;当需要将某种语言排序显示到英文前面时,就需要修改比较的编码;
[SOLUTION]
英文的UCS2编码范围是0x0000~0x007f;
只要将英文的编码加上某种语言编码的最大值,某种语言排序时就可以排到英文的前面;
在09A上的实现将俄文排序在英文前面:
在MMI_phb_compare_chars中添加以下的代码:
U16char1_upper=mmi_phb_char_towupper(char1);
U16char2_upper=mmi_phb_char_towupper(char2);
//。addcodehere。
if(char1>=0x0000&&char1<=0x007f)
{
char1=char1_upper+0xf800;
}
if(char2>=0x0000&&char2<=0x007f)
{
char2=char2_upper+0xf800;
}
//。addcodehere。
/*----------------------------------------------------------------*/
/*CodeBody*/
/*----------------------------------------------------------------*/
/*tryUCS2matching*/
if(char1==char2||char1_upper==char2_upper)
{
return0;
}
......
在09B和10A中,在srv_phb_compare_wchar中做相同的修改即可

顶顶顶

66666

UCS2编码,注意规则

某种语言编码的值越大,排名越靠前?

谢谢分享

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

网站地图

Top