source insight 中文注释乱码原因及解决方案

问题现象

在我们使用source insight 查看代码时经常会出现中文乱码问题,严重影响我们的代码阅读体验。

网友提供的两种解决方案

方法一:

设置source insight 编码方式

单个文件乱码解决办法:

菜单栏中【File】 > 【Reload As Encoding…】 > 【Chinese Simplified (GB18030)】 > 选择后,点击load,问题解决!!!

所有文件乱码解决办法:

菜单栏中 【Options】 > 【Preferences】 >File标签中,最下面的“Default encod­ing” :改成System Default(Windows ANSI) 或者Chinese Simplified(GB2312) CP:936,点击确定,问题解决!!!

方法二:

在第一种方案未能成功实现目标时,可以尝试第二种方案。
以下内容为转载:https://cloud.tencent.com/developer/article/1417198

最近使用source insight查看一些开源代码,显示中文就乱码,据说是因为source insight不支持utf-8编码,默认编码方式为ANSI码。所以需要将utf-8等非ANSI码的文件转换成source insight默认支持的ANSI码格式才能显示中文不乱码。
解决方案如下:

一、单个文件转换
对于单个文件,好说,只要将非ANSI码格式的文件转换成ANSI码格式即可,方法如下:
1、将文件用ultraEdit32打开,选择 文件->转换->UTF-8到ANSI, 然后保存。重新用source insight打开就好了。
或者使用记事本打开非ANSI格式的源代码文件,另存为,在保存选项对话框中,在编码格式一栏中发现是UTF-8,选择ANSI一项,保存,再用Source Insight打开就可以正常显示中文注释了。具体可参考百度经验的一篇文章:source insight 中文乱码的解决方案
2、借助Linux下的iconv命令
(1)关于iconv命令的用法,可以在Linux下的终端键入iconv --help或者iconv --usage来查看
可以参考这篇文章:http://www.firekyrin.com/archives/249.html
即可以使用iconv库函数(包含在glib中)和iconv命令来执行编码转换,即:
iconv -f utf-8 -t gb18030 file1.txt -o file2.txt
将utf-8编码的file1.txt文件转换成gb18030编码的file2.txt文件。
(2)使用Ruby脚本转换
参考这篇文章:使用Iconv将Utf-8转换成ASCII(on Linux)
这两种方法说实话还不如第1种方法实用。

二、批量文件转换
对于批量的非ANSCII码格式的文件
参考这篇文章的方法: Source Insight完美转换UTF-8 到 GB2312
目前看来这个方法不是很有效。

针对Source Insight 4.0以上版本的不同解决方法

由于以上版本更多的是解决 Source Insight 3.x及以下版本,而且在某些情况下并不适合采用转换编码方式的情况,例如:Python代码, 其对编码是敏感的,即不能随便转换为别的编码,否则会影响代码的执行。

Source Insight 3.x版本不支持UTF-8 的编码方式,那Souce Insight 4.0也不支持吗?

来看下Source Insight 4.0 的官方帮助文档:

查看文档方式:
菜单栏中【Help】 > 【Help…】> 点击

source insight 中文注释乱码原因及解决方案
source insight 中文注释乱码原因及解决方案
source insight 中文注释乱码原因及解决方案从帮助文档可知Source Insight 4.0 是支持UTF-8 的编码文件的,因此针对 UTF-8编码的文件在Source Insight 4.0软件上显示乱码可以执行以下操作:

单个文件:
菜单栏中【File】 > 【Reload As Encoding…】 > 【UTF-8】 > 选择后,点击load。

source insight 中文注释乱码原因及解决方案source insight 中文注释乱码原因及解决方案

所有文件乱码解决办法:
菜单栏中 【Options】 > 【Preferences】 >File标签中,最下面的“Default encod­ing” :改成UTF-8,点击确定。

source insight 中文注释乱码原因及解决方案
source insight 中文注释乱码原因及解决方案

总结

从上面的信息可以分析出 source insight 中文显示乱码是因为加载文件的编码与source insight中的编码设置不匹配导致,因此出现乱码时我们可以通过如下步骤尝试解决问题:

  1. 查看文件的编码方式。
  2. 根据文件的编码格式设置Source Insight 的编码或者根据Source Insight 中设置的编码格式转换文本的编码。

PS:我们可以根据自己实际情况,按需选择是设置Source Insight参数还是转换文件的编码格式。