在Windows中,是否可以为每个应用程序设置ANSI编码?

14

Windows本地化有一个对话框,用于为不支持Unicode的所有应用程序设置区域设置,它在XP上看起来类似于其他版本的Windows:

是否有一种方法可以针对每个应用程序而不是全局指定这个设置。比如说,我想在同一台机器上运行两个不同的ANSI应用程序——一个用俄语,一个用中文,这是可能的吗?


4
这正是Unicode被发明出来解决的问题。 - Mark Ransom
5
是的,但是许多应用程序没有Unicode版本。 - Maximus
在启动程序之前运行 chcp.exe。 - Hans Passant
chcp 只适用于控制台应用程序,对于任何 GUI 没有用处。 - Maximus
3个回答

12

有一个名为Locale Emulator的免费开源工具,可以在你选择的区域设置(代码页)下运行其他应用程序,而不是系统默认设置。

截至本文撰写时,Locale Emulator声称与Windows 10版本1803兼容(这是最新的Windows版本)。

Locale Emulator can even integrate with Windows shell


这个很容易上手和直观。它主要用于日本游戏,但如果有人想要在不同的语言中启动应用程序,他们只需要选择“使用应用程序配置文件运行”。 - xji
3
对于那些对其工作方式感兴趣的人,可能在这里https://github.com/xupefei/Locale-Emulator-Core/blob/master/LocaleEmulator/LocaleEmulator.cpp。 - max630
我看不到任何联系项目维护者的方式。(•_•) - Kit Johnson
不幸的是,它确实改变了区域设置,但没有改变代码页。 - chersun

6

微软曾经提供了一款名为Microsoft AppLocale的免费软件。它允许以不同于系统默认设置的语言环境来执行应用程序。设置好后,您将获得一个通过AppLocale运行应用程序的快捷方式。

然而,有两个问题:

  1. AppLocale不再受支持,其下载页面也不再可用。不过,您可以从Softpedia下载。我已经检查了它的数字证书,Softpedia没有篡改它。
  2. 在Windows Vista及更高版本上,安装程序可能会以错误结束。要成功安装它,您必须使用管理员权限打开PowerShell(或命令提示符),并导航到包含apploc.msi的文件夹,然后从那里运行它。(Credit for discovering this goes to TechJourney。)

1
只需按照它的设置步骤,这真的非常有帮助,谢谢Maxumus。 如果你想要批量运行它,请查看这篇文章: http://opcode0x90.wordpress.com/2008/01/09/patch-for-applocale/ - Dmitry
完美运行(将Mp3tag设置为在代码页1251下读取8位编码的MP3文件,而不是我的操作系统设置的1252)。- 当在Vista及以上版本中使用时,请记得明确以管理员身份安装。 - Lumi
该链接已不再可用,除非通过Wayback Machine(https://web.archive.org/web/20150201002022/http://www.microsoft.com/en-us/download/details.aspx?id=2043)访问。 - snips-n-snails

0

Microsoft AppLocale工具与Windows 10不兼容,您可以按照以下步骤设置非UTF-8应用程序的相同代码页默认设置:

  1. 开始 > 设置 > 时间和语言
  2. 区域和语言
  3. 相关设置 > 其他日期、时间和区域设置
  4. 区域 > 更改位置
  5. 管理选项卡
  6. 非Unicode程序的语言 > 更改系统区域设置...
  7. 选择您的区域设置,然后单击“确定”,接着需要重新启动计算机

很抱歉这些指令有点绕,但我认为如果微软公司提供的方法行不通,您仍然可以找到正确的设置。


6
这将为整个操作系统设置语言环境,而不是单个应用程序。 - Dmitry
这根本就不起作用(对我来说)。 - sgon00

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接