C#中中文编码的问题(StreamWriter和StreamReader默认编码)

时间:2023-03-09 20:36:17
C#中中文编码的问题(StreamWriter和StreamReader默认编码)

在使用StreamWriter和StreamReader时产生了这样的疑问,在不指定的情况下,他们使用什么编码方式?

查看MSDN,请看下图:

C#中中文编码的问题(StreamWriter和StreamReader默认编码)

  注意红色区域  这让我以为构造函数参数不同时使用不一样的字符,一种是utf-8,一种是默认编码。

  然后我去测试。结果发现在使用StreamWriter时不指定字符集和指定字符集为默认两种结果是不一样的。惊讶吗!

  每当我自己的想法和权威冲突时,一般的结果是我犯二了,这次也一样。

  祭出绝招,使用WinHex查看写出来的文件,结果发现:

  不指定的情况下为utf-8

  默认编码为gb2312(笔者中文系统)

  废话这么多,得出如下结论:

  StreamWriter和StreamReader默认均使用utf-8编码!

 上图中应该把默认编码换成utf-8.(微软你觉得你做错了吗?各位看官你们怎么看?)