Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Github和文件编码差异_Git_Github_Character Encoding - Fatal编程技术网

Github和文件编码差异

Github和文件编码差异,git,github,character-encoding,Git,Github,Character Encoding,我们正在使用GitHub进行一个项目。最近,我们意识到我们在两台计算机中使用了不同的编码(一个分支使用ISO8859-1,另一个分支使用UTF-8)。我们最终成功地将这两个分支转换为UTF-8。转换是在本地为每个分支完成的(在Submite中使用“SavewithEncodign”),然后推送到源代码 问题在于运行--diff或使用web compare检查分支的可合并性时。GitHub向我展示了许多不同之处,即使文件看起来相同,例如: -#bit leds = latB.2

我们正在使用GitHub进行一个项目。最近,我们意识到我们在两台计算机中使用了不同的编码(一个分支使用ISO8859-1,另一个分支使用UTF-8)。我们最终成功地将这两个分支转换为UTF-8。转换是在本地为每个分支完成的(在Submite中使用“SavewithEncodign”),然后推送到源代码

问题在于运行--diff或使用web compare检查分支的可合并性时。GitHub向我展示了许多不同之处,即使文件看起来相同,例如:

-#bit leds      = latB.2               //Leds de cámara 
-#bit ledsTris  = trisB.2              //Leds de cámara TRIS 
+#bit leds      = latB.2               //Leds de cámara 
+#bit ledsTris  = trisB.2              //Leds de cámara TRIS 
除此之外,如果我从不同的PC机上提取,所有内容都是UTF-8编码的,并且在编辑器中看起来还可以(升华)(没有编码问题)。我不明白为什么GitHub会向我展示这些差异(有数千个)。在我必须通过手动合并,逐行检查之前,我可以检查或做什么


提前感谢

我认为问题在于“á”在UTF-8和ISO8859-1中的编码不同(最有可能在UTF-8中的2个字节上)。 如果您能够重写git历史记录,则可以使用git filter分支--treefilter更改所有文件的编码,以便使用iconv进行所有提交:

git filter-branch -f --tree-filter 'for f in $(find ./ -type f -name "*" |grep -v .git); do iconv -f ISO8859-1 -t UTF-8 $f; done' HEAD

试着传递--忽略对差异的空间更改。升华可能已将选项卡更改为空格或行尾。忘记提及…这是我在控制台中使用--diff时看到的:-#bit led=latB.2//led de cámara-#bit ledsTris=trisB.2//led de cámara TRIS+#bit led=latB.2//led de cmara+#bitledsTris=trisB.2//Leds de cmara TRIS(它显示出不同的特性!)