相关网址http://msdn.microsoft.com/en-US/library/ee490956(v=winembedded.60).aspx
备注:script应该理解为文本比较合适。
Unicode ScriptProcessor for Complex Scripts(简称Uniscribe)技术,支持需要特殊处理的脚本,通过此技术,可以处理不是从左到右以线性布局的脚本的显示和编辑。WINCE系统为这些脚本提供正确的文本处理和布局,并且能够对它们进行镜像处理。
1. Uniscribe OS设计开发
对于如何创建支持复杂脚本ComplexScripts的WINCE6.0系统,请见连接:http://blog.csdn.net/loongembedded/article/details/9113137
Uniscribe功能不能用于东亚脚本,比如韩语或是中文,我们可以在系统中通过增加注册表来让用户决定开启或是关闭Uniscribe功能,增加的注册表项如下:
[HKEY_LOCAL_MACHINE\SYSTEM\GDI\Uniscribe]
"DisableUniscribe" =dword:0
如果DisableUniscribe的值为0表示开始Uniscribe功能,如果此值为1表示关闭Uniscribe功能,如果没有此值或是设备中没有设置此项,模块开启Uniscribe功能(当然前提是系统添加了Unicode Script Processor for Complex Scripts组件)。改变此键值后需要重启才生效。
2. Uniscribe应用开发
Uniscribe 能够非常精细的处理复杂文本,它支持在文本主公复杂规则的查找,如阿拉伯语、印度语和泰语。也处理文本从右到左写,如阿拉伯语和希伯来语,并且支持混合文本。
Uniscribe 导出API来支持国际文本,包括复杂规则的中东和亚洲文本。使用Uniscribe,应用程序只需要管理一个支持Unicode字符编码的存储,文本布局应用不需要用户维护任何用来跟踪字符顺序的buffer或是映射表(mapping table)。应用程序只需要存储和管理用户输入字符的顺序,这和Unicode定义的逻辑顺序相同。应用程序的辅助存储(backing store)不会改变布局操作的结果。从重新排序的群集(reordered clusters)到原始字符边界(original character boundaries),Uniscribe维护这些从应用程序传递进来的字符顺序。
相关连接:http://blog.csdn.net/jianlizhao66/article/details/1480748
3. OS是否带有Uniscribe的差异
⑴OS的大小
带有Uniscribe功能的系统比没带Uniscribe的大842KB,接近1Mbytes。
⑵带有Uniscribe功能的系统能够正常显示从右到左之类的语言
下面以阿拉伯语为例来介绍,在xp中文系统上访问http://arabic.arabia.msn.com/,从此网站下截取显示内容便于比较:
图1
把此内容拷贝在txt文件中,然后把此文件拷贝到带有Uniscribe英文系统的手持机上,显示如下:
图2
把此文件拷贝到没有Uniscribe英文系统的手持机上,显示如下:
图3
由上图可知,带Uniscribe功能的系统能够正常显示从左到右之类的阿拉伯语言。
⑶系统响应的速度
以1D读取code 39条码为例来看系统响应的时间差别。
测试项 |
开启Uniscribe |
关闭Uniscribe |
1D读取code39条码 (间隔时间400ms,连读1000次) |
9分23秒 |
8分24秒 |
读取14443A-S70标签 (间隔时间200ms,连读1000次) |
6分17秒 |
4分57秒 |