Windows 地區設定選項:使用 Unicode UTF-8 提供全球語言支援
1 |
從同事分享茶包學到新知識,中文版 Windows 2019 有個新的 Beta 版選項 - 「使用 Unicode UTF-8 提供全球語言支援 / Use Unicode UTF-8 for worldwide language support」:
這個選項將影響幾項 Registry 設定 - HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage
的 ACP (ANSI Code Page)、OEMCP (OEM Code Page)、MACCP (Macintosh Code Page),決定不支援 Unicode 程式(或 API) 要使用什麼語言編碼解析資料。
實際觀察,繁體中文 Windows 原本設定為:
勾選「使用 Unicode UTF-8 提供全球語言支援」後,三者都會變成 65001:(註:需重開機才會套用更新 Windows 行為)
講到 65001,很多人應該馬上想到 chcp 65001。沒錯,設定後相當於 Cmd 或 PowerShell 一開啟就已 chcp 65001,預設為 UTF-8 編碼。
實測開個 cmd,輸入 echo 中文測試 > test.txt
,寫入的檔案編碼就是 UTF-8。
而上回提到的 PowerShell 轉存 git 輸出到文字檔中文變亂碼問題也不藥而瘉:
事情不能只看光明面,若系統仍有 BIG5 編碼檔案,狀況就反轉了,type big5.txt
會得到亂碼,需 chcp 950
才會正常;而記事本(Notepad)及一些非 Unicode 程式,開啟 BIG5 文字檔也會以亂碼收場:
同樣的設定 Windows 10/11 也有,故我們可視需要將 Windows 預設非 Unicode 語系由 BIG5 換成 UTF-8。但依我的經驗,除非是任務單純的伺服器環境,現階段日常生活不時會接觸到 BIG5 檔案,而且我們也已習慣需要 UTF-8 時手動切換。故可能得等未來 BIG5 文件數量更少一些,這個選項才會好處大於困擾。
Comments
# by Aaron
經測試pl/sql developer讀取oracle varchar格式存中文的,顯示也會變亂碼。