最近使用source insight查看一些開源代碼,顯示中文就亂碼,據(jù)說是因?yàn)閟ource insight不支持utf-8編碼,默認(rèn)編碼方式為ANSI碼。所以需要將utf-8等非ANSI碼的文件轉(zhuǎn)換成source insight默認(rèn)支持的ANSI碼格式才能顯示中文不亂碼。
【問題】
用Source Insight打開一個(gè)Python文件,其中包含中文,但是中文在SI中顯示的是亂碼:
【解決過程】
1.后來去看了下,原先這個(gè)文件,是UTF-8編碼的。
這說明,目前SI不支持UTF-8編碼,所以中文顯示亂碼。
2.現(xiàn)在就是想辦法,看看能否讓其正確顯示UTF-8編碼的中文字符。
不過很不幸的是,
有什么辦法可以讓source insight支持utf-8編碼的源代碼文件嗎?
找到SI官網(wǎng)的解釋:
Source Insight 3.x Frequently Asked Questions
Q: Does Source Insight support UNICODE files?
A: Source Insight 3.x does not yet support UNICODE files.
即,SI 3.x竟然,不支持Unicode,所以,讓其支持UTF-8的夢想破滅了。
不過想說的是,其在字符集,字符編碼這方面的支持,也的確夠垃圾的,竟然連如此通用的UTF-8編碼都不支持。
3.不過,如果只是想要包含的中文等字符正常顯示的話,導(dǎo)致找到了解決辦法,那就是,將其轉(zhuǎn)換為本地ANSI編碼,此處即為,將UTF-8的源文件,用Notepad++轉(zhuǎn)換為本地ANSI,即GB2312編碼,此時(shí),再用SI打開,就可以正常顯示中文了:
而對于如果是多個(gè)文件,只是想要讓其正確顯示中文的話,則此處,暫時(shí)是只能通過編碼轉(zhuǎn)換來實(shí)現(xiàn)。
關(guān)于編碼轉(zhuǎn)換,除了用Notepad++等工具,可以使用iconv工具去轉(zhuǎn)換。
iconv的使用方法為:
iconv -c -f utf-8 -t gb2312 BlogSohu_utf8.py >> BlogSohu_ansi_gb2312.py
不過,對于我來說,由于代碼是Python代碼,其對編碼是敏感的,即不能隨便轉(zhuǎn)換為別的編碼,否則會(huì)影響我里面的代碼的執(zhí)行的.
所以,不能為了用SI看代碼爽,而把Python程序的編碼改變了,否則導(dǎo)致程序無法正常執(zhí)行,就得不償失了.
因此,目前還是很悲催的,還是該為(之前一直就用的)Notepad++看Python代碼吧,效果也還是不錯(cuò)的:
【總結(jié)】
SI中,想要UTF-8的中文字符正常顯示的話,目前沒有直接支持的方法。
暫時(shí)只能通過將原UTF-8的格式的文件,轉(zhuǎn)換為本地ANSI編碼(此處是簡體中文,對應(yīng)的ANSI編碼為GB2312),然后再用SI打開此ANSI編碼的文件,中文字符就不是亂碼,就可以正常顯示了。
解決方案如下:
一、單個(gè)文件轉(zhuǎn)換
對于單個(gè)文件,好說,只要將非ANSI碼格式的文件轉(zhuǎn)換成ANSI碼格式即可,方法如下:
1、將文件用ultraEdit32打開,選擇 文件->轉(zhuǎn)換->UTF-8到ANSI, 然后保存。重新用source insight打開就好
了。
或者使用記事本打開非ANSI格式的源代碼文件,另存為,在保存選項(xiàng)對話框中,在編碼格式一欄中發(fā)現(xiàn)是UTF-8,選擇ANSI一項(xiàng),保存,再用Source Insight打開就可以正常顯示中文注釋了。具體可參考百度經(jīng)驗(yàn)的一篇文章:source insight 中文亂碼的解決方案。
2、借助Linux下的iconv命令
(1)關(guān)于iconv命令的用法,可以在Linux下的終端鍵入iconv --help或者iconv --usage來查看
可以參考這篇文章:http://www.firekyrin.com/archives/249.html
即可以使用iconv庫函數(shù)(包含在glib中)和iconv命令來執(zhí)行編碼轉(zhuǎn)換,即:
iconv -f utf-8 -t gb18030 file1.txt -o file2.txt
將utf-8編碼的file1.txt文件轉(zhuǎn)換成gb18030編碼的file2.txt文件。
source insight 中文注釋為亂碼解決
(1)source insight 閱讀VC++源碼,注釋為亂碼解決方案
1、options->preferences->Syntax Formatting->Styles;
2、在Style Name 選擇 Comment,再對其Font Name 選擇Pick,然后再選擇“新宋體”。
(2)source insight 閱讀Linux源碼,注釋為亂碼解決方案
1、用記事本打開源文件,中文可以顯示,我另存為,在保存選項(xiàng)中,編碼一欄發(fā)現(xiàn)是:UTF-8。我選在ANSI一項(xiàng),保存。再用Source Insight 打開,終于可以顯示了。