使用Visual Studio 2010.我有一个TortoiseHg认为是二进制的resource.h文件,因此它不会在提交窗口中显示它的差异。我可以在文本编辑器中轻松打开文件,看到它是纯文本。
我看到了一个相关问题(Why does Mercurial think my SQL files are binary?),表明它与文件编码有关。确实在Notepad ++中打开文件说该文件位于“UCS-2 Little Endian”中。我怎样才能解决这个问题?显然,我不想打破一些Visual Studio的期望。
答案 0 :(得分:7)
仅出于显示目的,由于长期的UNIX约定,Mercurial将包含NUL 字节的所有文件视为二进制文件。这几乎总是正确..除了UTF-16(以前称为UCS-2)..其中一半的文件是NUL字节!
在内部,Mercurial始终将所有文件视为二进制文件,因此此问题仅与我们是否尝试显示差异有关。
所以你有两个选择:
有些搜索“resource.h utf-16”的网站表示,如果你用UTF-8或ASCII格式保存这个文件,VS2010会很好,这应该是C源代码的完美选择。
http://social.msdn.microsoft.com/Forums/en/vssetup/thread/aff0f96d-16e3-4801-a7a2-5032803c8d83
答案 1 :(得分:5)
尝试显式转换/更改编码为UTF-8 / ASCII并查看。您可以从Notepad ++的Encoding
菜单(选择UTF-8中的编码)中执行此操作
Visual Studio可以正常使用UTF-8文件。