今天在調試一個get請求的接口的時候發現HttpWebResponse方法接收數據的時候,中文出現亂碼的情況。
原因是格式編碼轉碼的問題。
原來自從Windows 2000之后的操作系統在文件處理時默認編碼采用Unicode,所以.Net 的文件默認編碼也是Unicode。除非另外指定,StreamReader 的默認編碼為 Unicode,而不是當前系統的 ANSI 代碼頁。但是文檔大部分還是以ANSI編碼儲存,中文文本使用的是gb2312,所以才造成中文亂碼的狀況,也就是說在讀取文本的時候要指定編碼格式。
解決方式
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
將Encoding.GetEncoding("utf-8")更改為默認編碼格式。
StreamReader myStreamReader = new StreamReader(myResponseStream, System.Text.Encoding.Default);
就ok;餓