原因:編碼不認識
解決方法:
StreamReader sr=new StreamReader(filename,System.Text.Encoding.Default)
//添加紅色部分表示使用與系統一致的編碼方式(中文),filename是指文件的路徑
StreamWriter sw=new StreamWriter(filename,false,System.Text.Encoding.Default)
我用的是UTF-8
究其原因,原來自從Windows 2000之後的操作系統在文件處理時默認編碼采用Unicode,所以.Net 的文件默認編碼也是Unicode。除非另外指定,StreamReader 的默認編碼為 Unicode,而不是當前系統的 ANSI 代碼頁。但是文檔大部分還是以ANSI編碼儲存,中文文本使用的是gb2312,所以才造成中文亂碼的狀況,也就是說在讀取文本的時候要指定編碼格式。
解決方法是System.Text.Encoding.Default 告訴
StreamReader 目前操作系統的編碼即可。
StreamReader reader = new StreamReader(FileName, System.Text.Encoding.Default)