我使用eclipse和eGit提交我的java代码。
但是当我用æ,ø或å提交Strings(或其他)时,它会改为Github上的特殊字符。 这是一个问题,因为当我拉,它会返回那些特殊的字符!
我可以强制git / eGit / Github使用æ,ø和å。 我猜加密不是utf-8?
Windows 7和Linux(Ubuntu)都存在问题。 它发生在我推送到github(通过eclipse和eGit以及通过命令行同样的问题)。 Ø改为?标志。 以下是它在eclipse中的表现:
Element str = doc.createElement("Størrelse");
以及它在github上的外观如何
Element str = doc.createElement("St�rrelse");
当我从github拉出来时,我会得到这个:
Element str = doc.createElement("Størrelse");
我可以强制github使用UTF-8编码,还是以其他方式解决编码问题?
答案 0 :(得分:2)
这是100%不是git问题。 Git不会以任何方式触及文件的编码。
这可能是GitHub 显示问题(注意:GitHub永远不会更改您的仓库的内容,因此也不会更改任何编码)。但是既然你的客户也遇到了问题,GitHub可能没有错。
问题可能是由您的编辑引起的。您的文件内容似乎在编写时编码为UTF-8,但用于打开文件的编辑器假定它是latin-1。尝试检查编辑器设置。
答案 1 :(得分:2)
Git将文件视为字节流。它不会改变文件的内容,也不关心它们的编码方式。
它还将文件名视为字节流(在macos上将文件名规范化,分解为正常形式,因此有一些解决方法)。它也没有改变你的文件名。
问题在于Eclipse如何编写文件,它们在github上的显示方式以及它在Eclipse的其他安装中的显示方式。确保在两台计算机上都在eclipse中设置了utf-8编码。
那说git实际上有一种方法可以让git在检查文件时进行修改,但是除了转换换行符(Windows安装程序会让你打开,我强烈建议你不要这样做)你' d必须设置所谓的“干净”和“涂抹”过滤器,如果你不这样做,git不会触及你文件的内容。
答案 2 :(得分:0)
我认为当你说“at github”时,你会想到通过他们的网络界面查看文件,并且在本地文件系统的新克隆中文件是可以的
这只是意味着你和github不同意你的文件编码,并且是跨平台问题的一个非常常见(但微妙)的原因。
我建议你:
现在学会这样做,以后很可能会为你节省很多问题。
答案 3 :(得分:0)
添加完美结合的元数据。我知道,这个问题已得到解答,但这并不是你想知道的,所以我认为我也发布了这个帖子,以便其他人可以使用它。
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">