WINCE7系统中文显示

       CE7系统定制出来后,新建文件夹,发现中文字符全是方块,惊了个呆。怎么会出现这么低级的错误,回想下,在语言包,国际化中都加入了中文设置的啊。怎么回事呢?开始找问题吧。

1.检查工程设置。

确认LOCALE设置中,加入了英文和中文语言包,默认为英文。

检查FONTS中加入了SIMSUM&NSIMSUM中文字库

检查INTERNATIONAL->CHINESE(SIMPLIFIED)选中G818030 DATA CONVERTER,LOCALE选中CHINESE(PRC)并使用AC3压缩,选中MUI接口。

2.检查开发板注册表设置

使用VS打开PB生成目录下的COMMON.REG,可以明显的看到,有多种字体被设置。

用远程工具打开开发板的注册表,[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FontLink\SystemLink]中设置的字体,居然为MSYH.TTF,而不是理想中的SIMSUN.AC3,很奇怪,于是把CE目录下的SMYH.TTF复制到WINDOWS目录下,中文能正常显示了,但是这个字库有20+M,明显不能接受。于是继续找工程设置,发现INTERNATIONAL->CHINESE(SIMPLIFIED)->UI FONT里面,选中了MSYH,去掉后生成新印象。还是不行,查看注册表,发现注册表中字体由MSYH.TTF变成了MSJH.TTF,查找了一下这个文件,发现是繁体中文,发现INTERNATIONAL->CHINESE(TRADITION)中果然有一个MSYH的字体被选中,去掉后。系统果然能正常显示中文了,字库也是使用压缩的SIMSUN.AC3,可以接受。

3.应用开发时遇到的乱码

在使用应用程序显示中文时,如果是直接在代码里写中文,可以正常显示,如果从INI文件等本地文档载入,例如用INI实现多语言动态切换,又出现了乱码。跟踪了一下,发现INI中使用MultiByteToWideChar( CP_ACP,0, (char *)pData ,-1,NULL,0);函数来进行字节转换,使用这种转换基于中文版本的系统是可以的。但是在上面所述的带中文字库,默认英文的系统上,可能是没有转换的码表,导致转换得到的中文都成了乱码。于是直接用UE在PC机上,把INI文件全部转为UNICODE格式,把INI读写类中的转换函数去掉,直接读出来的宽字节汉字,不再转换,总算可以正常显示汉字了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值