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. 使用UTF-8编码格式的文件支持中文、英文,和其他非英文文字,例如日文、韩文。如果使用GBK编码,后续如果代码中需要韩文,则必须要重新将代码的编码格式改回UTF-8。当项目开发到一定规模后再调整编码,将是一件非常麻烦的工作
万事皆有两面性,如果将一个使用GBK编码的项目导入到TFS中,再修改项目的编码为UTF-8,则原来代码中的中文都无法正常显示,需要手工一个一个调整为UTF-8,也是一个不小的工作。
所以需要开发人员在编写代码之前,就做好了编码的规划工作,同时在团队中统一编码规范和设置,避免一个团队编码格式不一样,你用UTF-8我用GBK,集成代码以后,无法正常浏览其他成员的代码。
文章来源:http://www.cnblogs.com/danzhang 张洪君
GBK还是UTF-8? Eclipse连接TFS的编码之痛!encoding, encoding, encoding…的更多相关文章
- Jetbrains Idea连接TFS时配置的坑
#Team Explorer Everywherehttps://www.microsoft.com/en-us/search/result.aspx?q=team+explorer+everywhe ...
- 使用Eclipse切换TFS工作区
这个问题首先牵涉到两个概念: - Eclipse的工作区:Eclipse的工作区是运行Eclipse时需要连接的本地代码空间,默认情况下,在Eclipse中创建的项目都保存在Eclipse的工作区中 ...
- genymotion和eclipse连接问题,一直出错
前两天重装系统,但是在运行android代码的时候遇到了这样的问题 The connection to adb is down,and a server error has occured. You ...
- 禁止Visual Studio启动时自动连接TFS服务器
在默认设置情况下,Visual Studio启动时,会自动连接上次打开过的TFS服务器.这种设计能够提高开发人员的工作效率,避免每次手动连接TFS服务器. 但是在某些情景中,也会给人造成不必要的麻烦, ...
- (转) Eclipse连接MySQL数据库(傻瓜篇)
Eclipse连接MySQL数据库(傻瓜篇) 原帖地址: http://www.cnblogs.com/fnng/archive/2011/07/18/2110023.html Posted on 2 ...
- eclipse连接远程hadoop集群开发时权限不足问题解决方案
转自:http://blog.csdn.net/shan9liang/article/details/9734693 eclipse连接远程hadoop集群开发时报错 Exception in t ...
- (转)VS2008连接TFS 2010
偶尔还是会用到,老是忘记安装的顺序,在这儿mark一下. 用VS2008连接TFS 2010, 需要按照以下顺序安装一下组件: .VS2008 Team Explorer 2008 3.Install ...
- eclipse连接远程Hadoop报错,Caused by: java.io.IOException: 远程主机强迫关闭了一个现有的连接。
eclipse连接远程Hadoop报错,Caused by: java.io.IOException: 远程主机强迫关闭了一个现有的连接.全部报错信息如下: Exception in thread & ...
- eclipse连接远程hadoop集群开发时0700问题解决方案
eclipse连接远程hadoop集群开发时报错 错误信息: Exception in thread "main" java.io.IOException:Failed to se ...
随机推荐
- Linux Expect 简介和使用实例
expect简介和使用实例 1 expect 简介 expect 是用来进行自动化控制和测试的工具. 主要是和交互式软件telnet ftp passwd fsck rlogin ssh tip 等进 ...
- mysql-2 数据类型
mysql中定义数据字段的类型对数据库的优化是非常重要的. mysql数据类型大致分为三类:数值.日期/时间.字符串(字符)类型. 数值类型 MySQL支持所有标准SQL数值数据类型. 这些类型包括严 ...
- 安装 sass 文档
为什么使用Sass 作为前端(html.javascript.css)的三大马车之一的css,一直以静态语言存在,HTML5火遍大江南北了.javascript由于NODE.JS而成为目前前后端统一开 ...
- 【转载】Python ConfigParser的使用
1.基本的读取配置文件-read(filename) 直接读取ini文件内容-sections() 得到所有的section,并以列表的形式返回-options(section) 得到该section ...
- Curl Methods
curl -H "Content-Type:application/json" -H "Authorization token:d0a92f4c29b448c010b59 ...
- jQuery+SpringMVC中的复选框选择与传值
一.checkbox选择 在jQuery中,选中checkbox通用的两种方式: $("#cb1").attr("checked","checked& ...
- leetcode507
public class Solution { public bool CheckPerfectNumber(int num) { ) { return false; } ; ; i <= nu ...
- svn can't save server certificate
f I use any svn command communicating with the remote server I get the following error: Error valida ...
- 迷你MVVM框架 avalonjs 1.3.1发布
avalon1.3.1发布. interpolate支持注释节点做定界符,avalon.config({interpolate:["<!--","-->&qu ...
- the difference between fopen&open
[the difference between fopen&open] fopen是C标准API,open是linux系统调用,层次上fopen基于open,在其之上.fopen有缓存,ope ...