我们最近将源代码从SVN和TFVC迁移到了Git。我们的代码库主要由VS2017中编辑的C#和VB.NET文件组成。
我们的Git存储库托管在BitBucket中,但是我们遇到了差异问题,正如您在下面看到的那样,BitBucket在文件开头显示一个小红点
悬停时,工具提示中显示\ufeff
,我知道它是一个表示零宽度不间断空格(ZWNBSP)的字符。
从个人角度来讲,我将所有源代码托管在GitHub上,从未遇到类似的问题。
那么,如果我们将其保留原样,那会有什么风险?我们还有哪些其他选择?
在此先感谢您的帮助, Roxtar
答案 0 :(得分:1)
我整个周末都对此问题进行了调查,得出的结论是,我们不必为此担心,如果您正面临该问题,也不必担心,如果您正在阅读此书,也可以。
这是我所有的测试用例和相关结果:
我们真的对此感到担心,我们认为我们的源迁移带来了编码问题,并且将来我们将在新旧文件之间面临编码地狱。
但是使用新创建的C#文件进行的测试表明,VS2017在所有文件中均引入了ZWNBSP char。因此,由于它是VS2017源文件的预期操作,因此将来不会有问题。
因此,结论是,BitBucket在ZWNBSP上显示了一个红色的点,当GitHub不显示任何内容时,它会吓到我,我认为BB至少可以更改点的颜色。
答案 1 :(得分:1)
我来自VS2017项目的xml文件的bitbucket中的差异中有红点。
红点表示Unicode代码点U + FEFF(\ufeff
)字节顺序标记(BOM)。就我而言,当我在Visual Studio中编辑xml UTF-8文件时,它将BOM序列添加到了文件的开头。
可以通过在没有签名的情况下在Visual Studio中重新保存文件来删除BOM(红点)。在VS(2017)中打开文件,然后打开“文件”->“另存为”。在“保存”按钮上,有一个下拉选项“使用编码保存”
默认为“ Unicode(带签名的UTF-8)”。更改为“ Unicode(不带签名的UTF-8)”
git diff将删除\ufeff
答案 2 :(得分:0)
您的文件采用UTF-8-BOM编码 使用notepad ++打开文件,更改编码以UTF-8编码。 encode in UTF-8
答案 3 :(得分:0)