程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# 中StreamReader讀入中文亂碼

C# 中StreamReader讀入中文亂碼

編輯:C#入門知識

原因:編碼不認識
解決方法:
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)

    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved