個人筆記:SQL指令檔中文亂碼轉換

維護SQL Server script, 例如預存程序或是自定義函式, 其中會用中文做為註解, 就像是其他程式語言一般, 做個記錄和說明, 以防未來自己忘了為何要這麼寫, 或是寫給別人看的說明。久久會遇到一次, 發生其中的中文註解變成了亂碼, 不過其他英數字部份不受影響。情況好時, 光看其他未變成亂碼的內容, 就可以了解內容在寫什麼和為何如此寫。但情況不好時, 就不太理解其寫法的用意, 真的想解開這些亂碼的部份, 以了解其原由。今決定做個記錄, 以免日後又想不起來怎麼處理。

通常, 以中文語系環境來說, 常發生的就是Big5繁體中文被誤轉成了西歐語系統ISO 8859-1, 導致發生亂碼, 或許是在檔案交換時用了不同工具, 甚至是不同語系, 曾用非Unicode的編碼儲存後又用了Unicode儲存, 造成了這樣的結果, 例如用了新、舊版的SSMS工具來交互存取。

如上就是一個已經變成亂碼的文字內容, 接著可以用如Notepad++工具來加以轉換救回來。

先開啟一個空檔案, 切到 編碼 > 字元集 > 西歐語系, 選ISO 8859-1。再來把上面的亂碼內容貼上這個空檔內。接著再做一次編碼切換

這一次選 編碼 > 字元集 > 中文, 選擇Big5。

它會提示警告, 選【是】進行轉換, 就可以轉回來正確的中文內容了(如下), 接著自行把它複製改存到UTF-8編碼檔案中, 才不會再被變更成亂碼。

註: 其實用反向的程序, 也可把正常中文導出成亂碼的結果, 不過大概不會這樣去應用。

發表留言

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料