我的测试服务器 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 支持全球语言”取消选中此项。(更改后需要重新启动)