C 中StreamReader讀取中文出現亂碼

2022-03-23 11:45:33 字數 561 閱讀 7314

**yhrun原文c#中streamreader讀取中文出現亂碼

原因是自windows 2000之後的作業系統在檔案處理時預設編碼採用unicode

所以.net檔案的預設編碼也是unicode。除非另外指定,streamreader的預設編碼為unicode,

而不是當前系統的ansi**頁。但是文件大部分還是以ansi編碼儲存,中文文字使用的是gb2312,所以才造成中文亂碼

所以在讀取文字的時候要指定編碼格式。

使用system.text.encoding.defaul告訴streamreader採用目前作業系統的編碼即可。

如:

filestream fs = new filestream("1.txt", filemode.open, fileaccess.read);  

streamreader read = new streamreader(fs, encoding.default);

string str;

while (read.peek() != -1)

read.close();

C 中StreamReader讀取中文出現亂碼

有時在用c 中streamreader讀取中文時出現亂碼 如 原因是自windows 2000之後的作業系統在檔案處理時預設編碼採用unicode 所以.net檔案的預設編碼也是unicode。除非另外指定,streamreader的預設編碼為unicode,而不是當前系統的ansi 頁。但是文件大...

C 中StreamReader讀取中文出現亂碼

yhrun原文c 中streamreader讀取中文出現亂碼 原因是自windows 2000之後的作業系統在檔案處理時預設編碼採用unicode 所以.net檔案的預設編碼也是unicode。除非另外指定,streamreader的預設編碼為unicode,而不是當前系統的ansi 頁。但是文件大...

c 用StreamReader對檔案讀取

型別 陣列反顯,處理 public void ontypearrayshowitem 讀取對應的天線型別檔案 opentext 建立乙個utf 8 編碼的streamreader物件 streamreader currenttypearraysr currenttypearrayfile.opent...