问题仅出现在 Windows Installer 上。如何解决?
2 回答
新发现,请看维基百科:https ://en.wikipedia.org/wiki/AppLocale
" AppPatch文件夹 ( %windir%\apppatch ) 中的 AppLoc.tmp 会导致 Windows Installer出现 Mojibake问题... Mojibake是乱码文本,是使用意外字符编码对文本进行解码的结果... 结果是用完全不相关的符号系统地替换符号,通常来自不同的书写系统。 ”
尽管上面的对话框显示了正确的文本,只是显示非常乱码(不是不同代码页的乱码字符),但我想在此处添加此问题,以防有人在面对乱码的 MSI 对话框时在寻找答案时发现它。
这不可能是显卡问题,因为字幕很好。您不是在虚拟机中运行此 MSI 吗?或者更糟糕的是,在Wine (Linux)中?
在技术层面上,MSI(如果存在)中的TextStyle Table控制 MSI 对话框中使用的字体。我假设您系统上的特定字体已损坏或在您可能运行的任何模拟环境中都无法正常工作。这解释了为什么它只发生在某些 MSI 文件而不是所有文件中(每个 MSI 可能使用不同的字体)。
仅作记录:我怀疑日志会告诉您很多信息,但请尝试使用msiexec.exe /I "Setup.msi" /L*V! "C:\Temp\msilog.log"
. 显然,酌情替换路径。这将创建一个详细的日志文件并刷新到日志(缓慢,但会记录所有内容 - 不会丢失日志缓冲区)。我想您可以搜索与字体、文本样式或字体相关的任何内容。
真正的解决方案显然是找出你的字体出了什么问题,但在此之前我们需要知道你是否处于模拟环境中。显然,放入 Windows 资源管理器中字体文件夹的字体会自动在系统上注册,但您也可以使用 VBScript: http: //windowsitpro.com/scripting/trick-installing-fonts-vbscript-or-powershell-script。所以我想结论是你可以从你周围的任何机器上抓取问题字体,最好是同一操作系统的机器,然后将字体拖放到你的字体文件夹中,看看这是否能解决问题。显然,使用上面列出的 TextStyle 表确定确切的问题字体。并备份已经存在的字体(如果有的话)。
为了查看 TextStyle 表,您需要一个工具来打开 MSI 文件。免费的是来自 Windows SDK的Orca.exe 。如果您的 PC 上已经安装了 Windows SDK,请搜索“Orca-x86_en-us.msi”并安装它。然后在开始菜单中找到 Orca。
如果您没有安装 Windows SDK 并且不想全部安装(它很大),那么有很多替代工具:使用什么安装产品?InstallShield、WiX、Wise、高级安装程序等。其中大部分是大型商业工具。你最快的赌注可能是超级逆戟鲸(我用的不多,但对于这么简单的任务应该没问题)。
以下是可能更清晰的工具列表(更好的概述): http: //www.installsite.org/pages/en/msi/authoring.htm
更新:
- 您是否识别出损坏的字体,安装它,然后重新启动并再次测试?
- 据我所知,重新启动应该重建字体缓存,但是这里有关于如何自己删除缓存的描述。它适用于 Windows 8,但在 Win10 中应该相同:http ://www.trishtech.com/2013/11/rebuild-fonts-cache-windows-8/