visual-studio - 为什么TortoiseHg认为Resource.h是二进制文件?

标签 visual-studio visual-c++ mercurial tortoisehg binaryfiles

使用Visual Studio2010。我有一个resource.h文件,TortoiseHg认为它是二进制文件,因此不会在提交窗口中显示差异。我可以轻松地在文本编辑器中打开该文件,并看到它是纯文本。

我看到了一个相关的问题(Why does Mercurial think my SQL files are binary?),表明它与文件编码有关。实际上,在Notepad++中打开文件表示该文件位于“UCS-2 Little Endian”中。我怎样才能解决这个问题?很显然,我不想破坏Visual Studio的期望。

最佳答案

仅出于显示目的,由于长期存在的UNIX约定,Mercurial将所有包含NUL 字节的文件都视为二进制文件。这几乎总是正确的..除了UTF-16(以前称为UCS-2)..其中文件的一半是NUL字节!

在内部,Mercurial始终将所有文件的视为二进制文件,因此此问题仅与诸如是否尝试显示差异之类的问题有关。

因此,您有两种选择:

  • 忽略它,Mercurial可以正常工作
  • 使用UTF-16以外的编码

  • 一些在网上搜索“resource.h utf-16”的文件表明,如果您以UTF-8或ASCII格式保存此文件,VS2010会很好,对于C源代码来说,这绝对是不错的选择。

    http://social.msdn.microsoft.com/Forums/en/vssetup/thread/aff0f96d-16e3-4801-a7a2-5032803c8d83

    关于visual-studio - 为什么TortoiseHg认为Resource.h是二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7681603/

    相关文章:

    javascript - 如何让 Logo 出现在滚动的粘性菜单中

    c++ - 带有 JPEG 图像的组合框

    c++ - 如何在 main 之前立即调用函数或静态初始化对象?

    mercurial - 为多个修订添加某种标签

    c++ - Cmake 重新生成变量变化

    c# - 如何在 asp :checkboxlist 中获取所选项目的计数

    visual-studio - 在visual studio中打开的文件名旁边的数字是多少?

    wpf - Intellisense 在哪里寻找 XAML 编辑中 Brush 属性的选项?

    visual-studio - Visual Studio 2010 (C++) : suppress C4706 warning temporarily

    Mercurial:通过 ssh 和 http 访问的性能