GBK还是UTF-8? Eclipse连接TFS的编码之痛!encoding, encoding, encoding…
在中文Windows操作系统上安装Eclipse或MyEclipse,默认会将Eclipse的编码设置为GBK,与操作系统的默认编码保存一致。
在这种默认设置下,在Eclipse新增的文件不会自动被团队资源管理器检测到,只能在“检测到的更改”中查询到,必须使用“提升”的方法将其添加到“包含的更改”中(如图一)
图一:只能在检查到的更改中查询新增的文件
图二:提示监测到的更改文件(新增的文件)
通过上述方法提交到服务上的文件,TFS会将其标记为UTF-8, 采用UTF-8的方式读取和解析(如图三)
图三:TFS中标记文档的编码格式
这样一来,如果文档中有中文字符,就会出现乱码显示(如图四);合并变更集的过程中也会因为编码格式不一致,导致比较失败,从而合并失败。
图四:中文显示乱码
为了避免上述问题的发生,建议在开发项目之前,所有团队统一Eclipse的编码设置,见Eclipse的工作区编码设置为UTF-8编码(如图五)
图五:设置Eclipse的工作区编码
使用这样设置,有一些几点好处:
1. 避免了Eclipse和TFS编码不一致导致乱码的问题
2. Eclipse中的团队资源管理器会自动检测到新增的文件,并自动将其添加到“包含的更改”中
2. Eclipse中的文件支持中文、英文,和其他非英文文字,例如日文、韩文。如果使用GBK编码,后续如果代码中需要韩文,则必须要重新将代码的编码格式改回UTF-8。当项目开发到一定规模后再调整编码,将是一件非常麻烦的工作
万事皆有两面性,如果将一个使用GBK编码的项目导入到TFS中,再修改项目的编码为UTF-8,则原来代码中的中文都无法正常显示,需要手工一个一个调整为UTF-8,也是一个不小的工作。
所以需要开发人员在编写代码之前,就做好了编码的规划工作,同时在团队中统一编码规范和设置,避免一个团队编码格式不一样,你用UTF-8我用GBK,集成代码以后,无法正常浏览其他成员的代码。
http://www.cnblogs.com/danzhang/