在Windows 控制台中正確顯示UTF-8 字元
使用傳統方法在Windows 控制台中顯示UTF-8 字元的許多嘗試均失敗正確渲染擴充字元。
失敗嘗試:
一個使用 MultiByteToWideChar() 和 wprintf() 的常見方法被證明是無效的,只留下 ASCII 字元可見。此外,使用 SetConsoleOutputCP() 將控制台輸出代碼頁設為 CP_UTF8 並直接使用 ASCII 字元寫入仍然會導致字元損壞。
成功方法:
最終,三種方法證明成功:
失敗原因CP_UTF8:
CP_UTF8 的根本問題是由於控制台沒有充當接受位元組流的典型檔案。相反,控制台 API 以離散單位處理數據,導致在單獨呼叫中傳輸時多位元組字元被錯誤解釋。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3