Source Insight编码格式的切换,以及编码格式错误导致中文乱码时的处理,很多时候并不是代码内容本身损坏了,而是文件原有的编码和编辑器读取的方式没有对上。在比较早的项目里面,GBK、ANSI、UTF-8这几种编码混在一起使用是很常见的,尤其是中文注释、中文字符串和历史源码被一同维护的时候,文件打开以后就很容易出现乱码。Source Insight能够使用不同的字符编码来打开和保存文件,默认的编码通常是按照UTF-8来处理的,但是项目里面的文件却未必全都是UTF-8的。
你在Source Insight里同时看到CRLF和LF,通常意味着文件里混入了两种行尾,继续编辑会带来无意义的Diff、合并冲突变多、评审很难看清真实改动。处理这类问题别先靠复制粘贴和固定替换,而是把默认行尾定下来,再用Source Insight把存量文件转换到同一种格式,同时把行尾标记显示控制在需要排查时才打开。