Microsoft AppLocale
Microsoft AppLocale(常简称为Applocale或Apploc)是微软免费提供给Windows用户的工具程序,可以在以Unicode(UTF-16)为基础的Windows中运行非Unicode的应用程序,避免乱码的问题。微软强调,这个工具只是一个暂时性的解决方案,程序开发人员应以正规方式利用Microsoft Layer for Unicode来创建纯正的Unicode应用程序。

在AppLocale推出之前,要在Windows XP等以Unicode为基础的系统平台上仿真运行非Unicode应用程序所需要的语言环境时,会通过「控制台」→「地区及语言选项」→「非Unicode程序的语言」来变更系统语言变量,以将应用程序中非Unicode的文本数据转换成Unicode。但是这个方法在使用上会有限制:
- 只有系统管理员可以变更系统地区设置的值。
- 变更系统地区设置后必须重新启动系统才能生效。
- 一次只能变更一种系统地区设置。
因此微软设计了AppLocale这个工具程序来仿真对应的系统地区设置,以便在各种字码页与Unicode之间进行转换。
AppLocale的设计是以Windows XP中所引进的最新应用程序兼容性技术为基础,因此AppLocale只能安装在Windows XP及之后的操作系统上,例如Windows Server 2003。而Windows 9x系列因为非Unicode基础的先天设计限制,所以注定不可能使用AppLocale。不过Windows XP前一版的Windows 2000因为也是以Unicode为基础的系统平台,所以据说有黑客通过一些高明的技巧成功地让AppLocale在Windows 2000上运行[1]。
缺失与不便
AppLocale在使用上为人诟病的问题主要有三:
- 造成以Windows Installer封装的安装程序在运行时出现乱码。
- 通过AppLocale运行应用程序时总是会出现提示注意事项的对话窗口。
- 不能在Windows 2000运行。
第一个问题是AppLocale会在「Windows\AppPatch」这个路径下生成一个叫做「AppLoc.tmp」的文件,而这个文件中所记录的消息会影响到Windows Installer。解决方法之一是将AppLoc.tmp的文件内容清空并设为唯读。
不过头两个问题已有一个完善的非官方解决方案。网络代号为piaip的程序员林弘德对Microsoft AppLocale做了修改,并命名为「pAppLocale」(也常被称为「piaip AppLocale」)重新发布,免费提供给需要者下载。
注释
- 要规避掉对操作系统的检查而在Windows 2000平台安装或直接从已安装好的电脑拷贝过来并不困难,但是如此并无法正常运行。
现状
2016年后,AppLocale已不再在微软官方网站提供下载,原因不明。但用户仍可在各种第三方渠道下载并使用。
外部链接
- pAppLocale下载页 (页面存档备份,存于)