3

是否有专门的 Mercurial 配置属性指定文件内容的编码,因此 Mercurial 客户端应该使用它来正确显示文件?

我发现web.encoding这似乎并不完全意味着我正在寻找什么。此外,谷歌也给出了一些结果ui.encoding,但我在参考资料中找不到任何提示。

4

2 回答 2

1

Mercurial 不关心您放入存储库中的文件的编码:Mercurial 乐于存储具有任何编码(或者可能根本不是特定编码)的文件。

这意味着您可以将带有 UTF-8、Latin-1 或任何其他编码的文件添加到您的存储库中,Mercurial 将按照您添加它们时的原样检查它们。

每个文件的编码不存储在 Mercurial 中的任何位置,由客户端来识别编码(可能基于有意义的文件内容,例如,对于 XML 文件)。

对于 Mercurial 桌面客户端(根据您在下面的评论),我建议查看文件内容:

  1. 你能用 UTF-16 解码吗?
  2. 你能把它解码为 UTF-8 吗?
  3. 文件中有NUL字节吗?然后停止并将其声明为“二进制”。
  4. 回退到 Latin-N 编码,例如西欧的 Latin-1。

UTF-16 和 UTF-8 编码很好,因为它们是结构化的,这使您可以检测到文件不是有效的 UTF-8 编码,比如说。上面的列表是从欧洲的角度编写的——您可能还应该咨询了解 Shift JIS 和亚洲使用的其他编码的人。

无论如何,我只希望 Mercurial 客户端尽最大努力向我展示一个编码不是 ASCII 的文件。


您的问题的一些替代解释:

  • 如果您真的在询问如何使您的文件在查看时看起来“正确” hgweb,那么问题在于在存储库中使用一致的编码并设置 `web.encoding

  • 如果您在查看Mercurial 附带的eol 扩展时,真的要问如何确保文本文件在不同平台(\n在 Unix 上、\r\n在 Windows 上)上获得操作系统本机行结束字符。

于 2013-05-14T12:15:29.413 回答
0

不。编码(字符集)是存储库中文件的属性

于 2013-05-13T21:06:09.310 回答