使用Visual Studio 2010.我有一个resource.h文件,TortoiseHg认为它是二进制的,所以它不会在提交窗口中显示它的差异。我可以在文本编辑器中轻松打开该文件,并查看它是纯文本文件。为什么TortoiseHg认为Resource.h是二进制的?
我看到一个相关的问题(Why does Mercurial think my SQL files are binary?),这表明它与文件编码有关。事实上,在Notepad ++中打开文件说该文件在“UCS-2 Little Endian”中。我怎样才能解决这个问题?显然,我不想打破一些Visual Studio的期望。
正如该线程中所述,从Visual Studio中打开resource.h文件并进入菜单File-> Advanced Save Options并选择编码“Unicode(带签名的UTF-8) - Codepage 65001”。在两次提交后,我现在可以看到一个适当的差异。 – User
在资源编辑器中编辑之后,选择“Unicode(带签名的UTF-8) - Codepage 65001”后,Visual Studio抱怨文件不是Visual Studio文件。相反,我使用“US-ASCII”(如本答案中的链接线程中所述)。也许问题是UTF-8签名?有没有签名的选项,但现在我正在考虑解决问题。 – User
总是喜欢没有签名的选项。 BOM(有问题的签名)是许多程序中常见的问题来源。而且即使没有BOM,一旦它包含ASCII范围之外的字符,自动检测UTF-8和ISO-8859-1之间的区别也相对简单,但它也不会真正增加值。 –