C#中中文編碼的問題(StreamWriter和StreamReader默認編碼)


在使用StreamWriter和StreamReader時產生了這樣的疑問,在不指定的情況下,他們使用什么編碼方式?

查看MSDN,請看下圖:

  注意紅色區域  這讓我以為構造函數參數不同時使用不一樣的字符,一種是utf-8,一種是默認編碼。

  然后我去測試。結果發現在使用StreamWriter時不指定字符集和指定字符集為默認兩種結果是不一樣的。驚訝嗎!

  每當我自己的想法和權威沖突時,一般的結果是我犯二了,這次也一樣。

  祭出絕招,使用WinHex查看寫出來的文件,結果發現:

  不指定的情況下為utf-8

  默認編碼為gb2312(筆者中文系統)

  廢話這么多,得出如下結論:

  StreamWriter和StreamReader默認均使用utf-8編碼!

 上圖中應該把默認編碼換成utf-8.(微軟你覺得你做錯了嗎?各位看官你們怎么看?)


免責聲明!

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



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