utf-8編碼的中文注釋 在 sourceinsight 顯示亂碼的解決方法---utf8 轉gb2312插件


    

 


Source Insight完美轉換UTF-8 到 GB2312

文/蒹葭

前言

很多人用source insight 打開某些源碼文件時,漢字顯示為一堆亂碼。這個問題是因為編碼方式不同。記事本和一些編輯器默認編碼方式是ANSI,在這種方式下輸入漢字,其實就是GB系列的編碼方式。不幸的是,廣收歡迎的代碼查看工具Source insight 雖然支持漢字,但是它不支持UTF-8。筆者感到疑惑的是,當初開發source insight的這幫人現在哪里去了?為何不繼續開發?這么好的工具,卻不再更新了,實在讓人可惜。

可惜歸可惜,程序還是要看。亂碼怎么辦?很多人用笨方法,用記事本打開源代碼,再另存為ANSI格式的文件。如果文件只有幾個,倒是既簡單又實惠,然而,當你碰到成百上千的代碼文件都是UTF-8時,你就會覺得這是夢魘了。

不過,不要怕。現在,完美的解決方法來了。(貌似跟做廣告一樣)

概述

本程序是參考網上源代碼修改而成。感謝原作者將該代碼開源,我的工作只需在他的基礎上進行修改就可以了,省去了大量的工作,使得我花了一個下午的時間就改成我所想要的程序。這就是開源的好處。所以說開源能幫助人們更快的開發出更好的軟件,開源萬歲。希望看到本文的讀者,也能為開源事業貢獻自己的一份力量。雖然說,此類代碼到處都有,不足為奇,但這個代碼在我改進之后,還是具有一些優點:

l         命令行執行  改進前的程序只能單獨執行,根據提示輸入參數和要轉換的目錄或文件;改進后的程序可集成到編輯器,集成開發環境(IDE)中。下文將會介紹如何集成到source insight中。

l         智能識別編碼方式  原來的程序不能識別編碼方式。如果轉換時選擇了一個非UTF-8編碼的文件,轉換后就成了亂碼;改進后的程序能智能識別編碼方式,無論是UTF-8文件是BOM格式還是非BOM格式,都能識別。對於純ASCII碼的文件,也能識別。

l         支持批處理  改進前的程序有bug,對目錄支持不完善;改進后的程序能很好的支持批處理。

 

目前,這個程序只針對源代碼文件編寫,支持后綴名為 .c .cpp .cxx .h .xml .java .txt等文件。如確實有需要,今后將支持更多類型的文件編碼格式轉換。

 

如何集成到 source insight?

下面,先介紹如何集成到 source insight里。本人使用的漢化版,如英文版請對照執行。

文件轉換命令    該命令能將當前打開的文件進行編碼轉換。很簡單,步驟如下:

在source insight里,選擇 “選項”—“自定義命令”,彈出對話框后,點擊“添加”,輸入新命令名 CodeConvert File 。確定后,點擊“瀏覽”,選擇我們的codeConvert.exe程序路徑。在輸入框里加上參數” –u2g %f” (注意空格,雙引號不要)。

這樣,這個文件轉換命令就添加成功。打開某個文件,按照上面步驟,選擇該自定義命令點擊“運行”,即可進行轉換。

目錄轉換命令    該命令能將當前打開的文件所在的文件夾進行編碼轉換。步驟同上,只是在輸入框里的參數改為” –u2g %d” (注意空格,雙引號不要)。

怎么樣?在source insight里點幾下,就能轉換了。混沌世界一下子清晰了。

     感謝前輩無私分享,本人對以上源碼做了裁剪和重寫,只保留了三個文件(核心的轉換類),做了部分去Windows化(主要是LPSTR stdafx.h 之類的東東,並將項目改成了DEVC++項目 ),去掉了整個目錄的轉換 功能 ,修改成了適合自己使用的主要處理單文件轉化(-utg %f)和恢復(-g2u %f)的版本,我相信這也是大多數人需要的,因時間有限,可能還有紕漏之處。

 

  附件提供DEVC++的項目文件及源碼

      原文及原始碼請參考Source Insight完美轉換UTF-8  GB2312


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM