在XPE开发过程中,经常有朋友碰到如何添加中文字体,中文输入法组件,中文乱码等相关问题。现将关于XPE下中文字体的常见问题整理如下,希望能够给广发XPE开发者带来帮助。
组件Microsoft Simplified Chinese Legacy IMEs:体积较小,但只有微软拼音输入法。没有输入法控制面板,也无法看到托盘图标!使用的时候按Ctrl+Space,虽然桌面上看不到任何变化,但是在记事本中已经可以打出汉字了!
1. 如何使XPE支持汉字显示?
Chinese - Simplified Language Support 中文简体语言支持
Microsoft Simplified Chinese IME Core 中文输入法组件
Chinese (PRC) MUI Resource 多语言支持
Chinese - Simplified Shell MUI XPE Explorer 多语言支持
Microsoft Simplified Chinese IME Core 中文输入法组件
Chinese (PRC) MUI Resource 多语言支持
Chinese - Simplified Shell MUI XPE Explorer 多语言支持
2. XPE中,中文输入法应该加哪个组件?
组件Microsoft Simplified Chinese IME Core:尺寸较大,该组件具有常用的中文输入法,具有输入法控制面板。配合Tray Icon Add/Remove Support组件一起使用,可以在托盘显示输入法图标。在XPE操作系统下按Ctrl+Space即可调出。
组件Microsoft Simplified Chinese Legacy IMEs:体积较小,但只有微软拼音输入法。没有输入法控制面板,也无法看到托盘图标!使用的时候按Ctrl+Space,虽然桌面上看不到任何变化,但是在记事本中已经可以打出汉字了!
3. 关于XPE下对非Unicode窗口中的中文字体的显示问题?
有一个客户的程序,在普通的XP下这个非unicode窗口中的中文字体显示正常,但把这个程序放在XPE下运行,发现有一个非unicode窗口显示不了中文,如果把XPE的区域设置中的高级选项卡中的“非unicode程序语言”设置为“中文(简体)”,仍然无法显示。解决方案只有将系统改为英文,然后下载一个Microsoft提供的AppLocale程序将这个程序的非unicode窗口语言设置为中文才能正常显示中文。
4. 如何在XPE下设置大字体和小字体?
更改注册表键值,96为小字体,120为大字体。例如:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontDPI]
"LogPixels"=dword:00000060
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontDPI]
"LogPixels"=dword:00000060
5. 区域语言设置需要添加那个组件?
Regional and Language Options
System Control Panel
System Control Panel
6.应用程序上的汉字在XPE下不能正常显示,怎么解决?
该问题可能由以下原因导致:
(1) 构建的XPE系统没有添加中文语言支持,或者开始构建工程的时候没有添加中文支持,后来手动添加的中文支持,均会导致应用程序上的汉字在XPE下不能正常显示,解决方案,重新构建一个XPE工程,在构建初期就添加中文语言支持;
(2) 使用Minlogon登陆模式,该模式可能会导致应用程序上的汉字无法正常显示,解决方案,使用Windows Logon登录模式;注意先做好Windows Logon模式的XPE然后换成Minlogon可能仍然无法正常显示;
(3) 你的应用程序所使用的中文字体在XPE中没有对应的字库。由于XPE的中文字库并不是很多,只有常用的几种,如宋体等,所以导致应用程序上的汉字无法正常显示,解决方案,将应用程序的字体换成标准宋体,然后重新编译,或者在XPE上安装应用程序所使用到的字库;
(4) 区域语言设置不正确;
(5) 应用程序使用了非Unicode字体格式,而XPE中没有对非unicode字体支持。解决方案,在控制面板里的区域与语言中进行东亚语言安装,然后在高级中非unicode选择中文简体,安装Unicode字体支持;
(6) 添加中文语言支持的同时把繁体中文组件也加上去了,这种情况下可能会导致运行程序就出现乱码,解决方案,把繁体组件去掉就好了。
(1) 构建的XPE系统没有添加中文语言支持,或者开始构建工程的时候没有添加中文支持,后来手动添加的中文支持,均会导致应用程序上的汉字在XPE下不能正常显示,解决方案,重新构建一个XPE工程,在构建初期就添加中文语言支持;
(2) 使用Minlogon登陆模式,该模式可能会导致应用程序上的汉字无法正常显示,解决方案,使用Windows Logon登录模式;注意先做好Windows Logon模式的XPE然后换成Minlogon可能仍然无法正常显示;
(3) 你的应用程序所使用的中文字体在XPE中没有对应的字库。由于XPE的中文字库并不是很多,只有常用的几种,如宋体等,所以导致应用程序上的汉字无法正常显示,解决方案,将应用程序的字体换成标准宋体,然后重新编译,或者在XPE上安装应用程序所使用到的字库;
(4) 区域语言设置不正确;
(5) 应用程序使用了非Unicode字体格式,而XPE中没有对非unicode字体支持。解决方案,在控制面板里的区域与语言中进行东亚语言安装,然后在高级中非unicode选择中文简体,安装Unicode字体支持;
(6) 添加中文语言支持的同时把繁体中文组件也加上去了,这种情况下可能会导致运行程序就出现乱码,解决方案,把繁体组件去掉就好了。
7.应用程序中只有菜单可以正常显示中文,而其他部分的中文都不能正常显示,为什么?
由于XPE只能够支持宋体等几种有限的中文字体,所以如果把应用程序中的中文字体设置为XPE中没有的,就会显示不正确。而应用程序菜单一般都是宋体,所以可以正常显示。解决方法,可以去微软的官方网站下载一个多用户界面(MUI),做成component加入XPe中就可以了。
本文转自雷志刚 51CTO博客,原文链接:http://blog.51cto.com/leizhigang/238241