選單
GSS 技術部落格
在這個園地裡我們將從技術、專案管理、客戶對談面和大家分享我們多年的經驗,希望大家不管是喜歡或是有意見,都可以回饋給我們,讓我們有機會和大家對話並一起成長!
若有任何問題請來信:gss_crm@gss.com.tw
1 分鐘閱讀時間 (253 個字)

Convert Big5 To UTF8

Convert Big5 To UTF8
前陣子專案在放上SonarQube掃描時,

發生了部分檔案無法掃描的情況,

追查後發現是專案中部份檔案的編碼(ANSI,中文為Big5)和設定(UTF8)不符,

因而有了此需求。

要將檔案轉換成UTF8編碼,

可以很簡單的使用Notepad++的轉碼功能做轉換:





但是因為專案相當龐大,

不太可能一一去做轉換,

勢必要透過一些工具去處理,

網路上這類的轉碼工具的確是有許多,

但分析了一下自身的需求:
  1. 找出某路徑底下所有.cs的檔案
  2. 檢查該檔案是否為Big5編碼
  3. 若是則做轉換
簡單的轉碼工具似乎是無法很直接的滿足需求,

那就來試著寫一個吧!

首先因只有部分檔案有編碼問題,

故不希望有將UTF8的檔案進行讀出後再存成UTF8的動作,

所以需要有個方法判斷某檔案是否為Big5編碼,

這邊參考黑大的文章(CODE-偵測檔案是否為BIG5編碼)並做點修改及說明,

而有了以下判斷方法:

https://gist.github.com/yohey03518/ad99d05864993b22e4cb8bad7a39f058

接下來就是掃出某路徑底下的檔案後判斷編碼並做轉換:

https://gist.github.com/yohey03518/3fd984a6cfe0c92c7482cbb4584e94dd

都準備完成了,來進行實驗:

將剛剛的主程式複製一份並透過Notepad++轉換成Big5(原先為UTF8編碼)



把App.config的路徑調整好後,執行程式結果如下:



至於如何驗證成功轉成UTF8編碼,

這邊是簡單的使用Windows的記事本,

打開檔案後選擇另存新檔,

若編碼預設是UTF-8的話代表檔案原先已經是UTF-8編碼囉!



補充:

使用Cygwin、PowerShell或是Linux下的Terminal進行編碼轉換

https://superuser.com/questions/27060/batch-convert-files-for-encoding
(本文同時發表於Yohey66's Corner)
【Design Patterns】Decorator 實作與應用
SQL Server Not In子查詢所返回的錯誤結果

相關文章

 

評論

尚無評論
已經注冊了? 這裡登入
Guest
2024/05/05, 週日

Captcha 圖像