在使用StreamWriter和StreamReader時產生了這樣的疑問,在不指定的情況下,他們使用什么編碼方式?
查看MSDN,請看下圖:
注意紅色區域 這讓我以為構造函數參數不同時使用不一樣的字符,一種是utf-8,一種是默認編碼。
然后我去測試。結果發現在使用StreamWriter時不指定字符集和指定字符集為默認兩種結果是不一樣的。驚訝嗎!
每當我自己的想法和權威沖突時,一般的結果是我犯二了,這次也一樣。
祭出絕招,使用WinHex查看寫出來的文件,結果發現:
不指定的情況下為utf-8
默認編碼為gb2312(筆者中文系統)
廢話這么多,得出如下結論:
StreamWriter和StreamReader默認均使用utf-8編碼!
上圖中應該把默認編碼換成utf-8.(微軟你覺得你做錯了嗎?各位看官你們怎么看?)