遇到问题-用StreamReader读取数据时出现乱码,streamwriter写入中文时出现乱码

用StreamReader读取数据时 出现乱码,检查下是否添加了转码
FileStream fs = new FileStream(url, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);

 StreamReader reader = new StreamReader(fs, System.Text.Encoding.UTF8);

如果有中文的话,注意要用gb2312

 StreamReader sr = new StreamReader(fs,Encoding.GetEncoding("gb2312"));//以gb2312编码读取文本文件中的汉字,要不然,读取的内容中如果有汉字,则显示为乱码。

这样加上编码打开才是正确的



如果这样打开还是乱码,可以在外部更改文件的编码,一般utf-8的StreamReader都能读取

比如txt的

1.可以用记事本打开,另存为时选择你要的编码

遇到问题-用StreamReader读取数据时出现乱码,streamwriter写入中文时出现乱码_第1张图片

2.用Notepad++打开,直接修改

遇到问题-用StreamReader读取数据时出现乱码,streamwriter写入中文时出现乱码_第2张图片

遇到问题-用StreamReader读取数据时出现乱码,streamwriter写入中文时出现乱码_第3张图片





streamwriter写入中文也要选编码编码

  1. string demo="写入txt中";  
  2.    StreamWriter demo_log = null;  
  3.             demo_log = File.CreateText("demo_log.txt");  
  4.    demo_log.WriteLine(demo,System.Text.Encoding.UTF8));  

如果已经使用了选了编码,打开后仍是乱码.则把生成的demo_log.txt按照上面的上面提到的把文件编码修改成UTF-8就可以正确显示了. excel同样适用


你可能感兴趣的:(乱码,StreamReader)