Sel*_*mir 8 git encoding bitbucket
我们最近将源代码从 SVN 和 TFVC 迁移到 Git。我们的代码库主要由在 VS2017 中编辑的 C# 和 VB.NET 文件组成。
我们的 Git 存储库托管在 BitBucket 中,但我们存在差异问题,如下所示,BitBucket 在我们的文件开头显示一个小红点
在悬停时,\ufeff显示在工具提示中,我知道它是一个表示零宽度不间断空格 (ZWNBSP) 的字符。
在个人方面,我将所有源代码托管在 GitHub 上,从未遇到过类似问题。
那么,如果我们保持原样,我们会有什么风险?我们还有哪些其他选择?
预先感谢您的帮助,Roxtar
我在来自 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

我整个周末都在调查这个问题,得出的结论是我们不应该担心这个问题,如果你面临这个问题,你也不应该担心,如果你正在阅读这篇文章,你可能会担心。
这是我所有的测试用例和相关结果:
我们真的很担心这一点,我们认为我们的源迁移引入了编码问题,并且将来我们将在旧文件和新创建的文件之间面临编码地狱。
但使用新创建的 C# 文件进行测试表明 VS2017 在所有文件中引入了此 ZWNBSP 字符。因此,这在将来应该不会成为问题,因为这是 VS2017 源文件的预期操作。
所以,结论是,BitBucket 显示了这个带有红点的 ZWNBSP,当 GitHub 没有显示任何内容时,这会让人感到害怕,我认为 BB 至少可以改变点的颜色。