使用HttpWebRequest和HttpWebResponse時接收數據中文亂碼的情況


今天在調試一個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;餓
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM