2023年6月11日 星期日

.NET Core 預設不支援「BIG5」編碼

.NET Core 預設不支援 BIG5編碼,使用時需要特別撰寫註冊,這部分可能會在使用有需求是透過 Encoding 物件做相關操作時會遇到,今天的情形是,需要測試讀取某個網頁內容,也會有 BIG5 問題,隨手紀錄一下



測試讀取台灣google 網頁的內容(https://www.google.com.tw),遇到 BIG 5 問題,畫面如下

這邊示範是使用 .NET 6



特別將錯誤的訊息 Highlight


要解決這個問題,僅需要加入以下程式碼

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);


調整後的程式碼


成功讀取到網頁內容


接著來看一下 NET Core 內建有哪些編碼,如下圖,僅有數個


此時若加上  Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); 比對一下


再來看看 .NET Framework 的版本,確實內建就已經存在了


以上,就是備忘錄一下


值得一提的是,一開始最前面的範例中,要讀取的網頁是 https://www.google.com.tw,會有內容讀取編碼問題,若此時拿掉 .tw ,意即僅僅只有 https://www.google.com ,此時即使沒有註冊其他編碼程式也不會有問題

供給大夥參考一下


沒有留言:

張貼留言