跨Eclipse,Mercurial,Windows和Mac OS编码问题

时间:2011-10-30 11:47:31

标签: eclipse encoding mercurial

在我的CS研究期间,我们有很多小组作业。我们使用Eclipse在Java中编程。我们(至少我试图让他们)使用Mercurial和BitBucket共享代码。我正在运行Mac OSX 10.7,而其他人正在运行Windows 7.我们在共享代码时经常遇到编码问题。 æ,ø和å等丹麦人通常都是一团糟。

我们应该在我们的eclipse设置中运行什么设置以确保编码是相同的(以及首选的编码?)在Windows上,Eclipse默认为Cp1252,在MacOS上默认为MacRoman。我一直试图让每个人都使用UTF-8,但他们以前编写的代码(在Cp1252中)不会正确显示,所以他们被迫转换很多,这通常最终导致他们默认回到Cp1252而忘记了当它们将代码提交到共享存储库时。

3 个答案:

答案 0 :(得分:7)

对我而言,它可以在Windows上使用Eclipse中的标准编码(Cp1252),并告诉Mac上的Eclipse使用编码ISO-8859-1。在Mac上,我在设置中为我的整个工作区配置了这个(在General - > Workspace下)。

答案 1 :(得分:0)

手动将旧的1250文本编码为UTF8并仅使用这些版本

答案 2 :(得分:0)

从经验上来讲,我相信最好的解决方案是让每个人都使用UTF-8,它可以代表任何Unicode字符。

解决方法CP1252和ISO-8859-1并不完美,它们之间的某些characters不兼容。此外,大多数IDE都默认为UTF-8,如果有人必须更改Eclipse编码设置会遇到麻烦,我相信应该是Windows用户。

因此,在使用CP1252和ISO-8859-1感到非常头痛之后,我决定将我的所有文件都更改为UTF-8。如果有人感兴趣,您可以在Unix上使用command like this进行操作,这将更改当前目录及其子目录中的所有文件:

find . -name "*.java" -exec sh -c "iconv -f ISO-8859-1 -t UTF-8 {} > {}.utf8"  \; -exec mv "{}".utf8 "{}" \;

由于您要告知原始编码,因此iconv可以转换而不会弄乱重音和特殊字符。

然后要求所有人创建一个新的工作区,在Eclipse上将所有编码配置配置为UTF-8(Windows用户),然后再次导入该项目。

相关问题