1. 程式人生 > >遇到問題-用StreamReader讀取資料時出現亂碼,streamwriter寫入中文時出現亂碼

遇到問題-用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.可以用記事本開啟,另存為時選擇你要的編碼


2.用Notepad++開啟,直接修改



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同樣適用