File encoding & line delimiter

平常是Win7下使用Eclipse,SourceInsight,Notepad++作为主要的开发工作,但代码会提交到Linux服务器上,最近的项目遇到了File encoding & line delimiter不统一的问题。

File encoding:本想用UTF-8无Bom的格式来保存所有文件,但不争气的SourceInsight却不支持UTF-8格式,无耐之下只能使用ANSI,只是遇到中文注释就比较头痛,且某些XML的资源文件,要求UTF-8.

Line delimiter:之前一直没太注意,但使用Beyond Compare的二进制对比时,发现提交前后有差异,有的显示unix,有的显示pc,还有mix。原来在SourceInsight下,默认使用的是PC(Windows)格式,Elipse默认是unix,同一文件被两者编辑时会出现此问题。解决方法把两种工具设制格式统一,使用Elipse的工具把己有文件转换下。

以下为Elipse的设置方法:

Window -> Preferences -> General -> Workspace :

Text file encoding :

Default : 选择此项将设定文件为系统默认的编码格式,后边会有提示具体是什么。

Other : 选择一个具体的编码格式。

New text file line delimiter :

Default : 选择此项将设定新建的文件换行符为系统默认的换行符。

Other : 选择一个具体的换行符样式。

换行符分别有:

Windows : CRLF 0D0A 1310 \r\n (Carriage Return/Line Feed)

Unix/Linux : LF 0A 10 \n

Mac OS : CR 0D 13 \r

编码格式设定将影响新建的文件和修改保存后的文件。

换行符设定只影响新建的文件,修改后保存将延续文件保存之前的换行符设定。

修改已存在文件的编码格式:

选择文件或文件夹-> Properties -> Resource -> Text file encoding

修改已存在文件的换行符:

选择文件或文件夹-> File -> Convert Line Delimiter To

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.