水银
在 Linux 上,我认为 Mercurial 只是以系统的编码方式进行编码(如果我错了,请纠正我)。因此最好将 Linux 设置为 UTF-8 以实现跨平台兼容性。这是许多现代发行版的默认设置。
在 Windows 上,Mercurial(由于 Python 的字节字符串处理)使用系统代码页。这几乎保证了非 ASCII 字符的不良跨平台互操作性。
适用于 Windows 的 fixutf8 扩展(Mercurial 2.0 之前)
有一个外部创建的 Mercurial 扩展名为fixutf8 for Windows,它可以正确处理所有 Unicode 字符(即使是当前代码页之外的字符)并将文件名编码为 Mercurial 存储库中的 UTF-8。因此,只要 Linux 使用 UTF-8 编码,它就可以与 Linux 进行互操作。上周我尝试在我的 Windows 设置上启用它,但在安装时遇到了一些问题。从那时起,一个问题得到了解决。现在唯一的问题是二进制 Mercurial 发行版是使用 Python 2.4 构建的,而 fixutf8 需要使用 Python 2.5 或更高版本构建 Mercurial 才能加载 fixutf8。我预计这将在不久的将来得到解决。
适用于 Windows 的 Mercurial 2.0 及更高版本
根据fixutf8网页,fixutf8 似乎与 Mercurial 2.0 及更高版本不兼容。有关未来解决方案的详细信息,请参阅WindowsUTF8Plan。我不确定这预计何时实施。