从 Windows 2008 R2 升级到 Windows 2016 Server 后出现 UTF-8 字符解码问题

从 Windows 2008 R2 升级到 Windows 2016 Server 后出现 UTF-8 字符解码问题

我的测试服务器 VM 已由公司 IT 部门从 Windows 2008 R2 升级到 Windows 2016 Server(通过 2012)。

我现在在运行一些测试时遇到了问题,并将问题归结为字符编码问题。

最容易重现的是:当我使用 Notepad++ 打开 xml 文档时,它在“编码”菜单中显示“以 UTF-8 编码”。 (如果重要的话,该文档来自 TFS 构建签出)

但是该文档包含法语重音字符(例如“é”),这些字符在屏幕上显示为两个字符序列(“é”,字节序列 0xC3,0xA9)。

但在我的开发电脑以及之前的安装中,我可以清楚地看到重音字符!

磁盘上的文件是相同的(以 UTF-8 编码)——用十六进制编辑器验证——它包含字节序列 0xC3,0xA9。

但是我的新 Windows 机器不知何故缺少正确解码 UTF-8 的功能?

我的测试系统也会读取文本文件,并从内容中构建磁盘路径。因此会受到此问题的影响。但我选择报告 Notepad++ 中出现的问题,因为它与我的测试系统无关,而且原因很可能相同。

我真的不知道该去哪里找这个。有人能帮忙吗?

答案1

在我们的案例中,这是由于 Windows 服务器上的 Beta 功能造成的。解决方案是取消选中此属性。打开区域选项(在运行窗口运行 intl.cpl),

选择“管理”选项卡,

点击“更改系统区域设置”,

“测试版:使用 Unicode UTF-8 支持全球语言”取消选中此项。(更改后需要重新启动)

相关内容