VS读取文件或写入文件时出现中文乱码问题

时间:2022-06-12 18:38:02

最近我发现我从文本文档中读取文件处理后再存入新文本文档后,只要是有中文的都显示乱码了~~当我把中文去掉后一切又都正常了,而在我处理过程中,很确定没有对中文进行处理。使用记事本打开发现没有乱码现象,但是在VC里显示是乱码,而且原来可以运行的也不能运行了,去掉中文后一切正常。

参考网上的一些资料发现:

  • 操作系统默认编码是大多是ANSI(具体有不同),txt记事本打开文件时默认以系统默认的缺省编码方式打开(中文为GB2312),所以在记事本中打开时显示正常。而VS打开以及新建文件使用的是UTF8编码。所以会出现乱码错误。解决办法很简单:
  • 出现中文时,打开文件请使用:

StreamReader read = new StreamReader(filename, System.Text.Encoding("GB2312"));

String strContent=File.ReadAllText(filename,Encoding.GetEncoding("GB2312"));

新建文件请使用:

StreamWriter writer= new StreamWriter(filePath , false, Encoding.GetEncoding("GB2312"));

writer.Write(content);//content为要写入的内容

sw.Flush();

sw.Close();

亲测可用,问题解决! 网上找了弄了好久才解决掉。

切记:打开时要用,写入是也要用!莫忘写入时编码!!切勿使用UTF8~~没用的……