C 使用StreamReader類讀取漢字

2021-09-08 00:22:32 字數 919 閱讀 4037

我們上個例子中的**:

using system;

using system.collections.generic;

using system.text;

using system.io;

class program

sr.close();

}catch (ioexception ex)

console.readkey();}}

如果在檔案**現漢字,那麼讀出來就是亂碼。為了解決這個問題,我們用如下**:

using system;

using system.collections.generic;

using system.text;

using system.io;

class program

sr.close();

}catch (ioexception ex)

console.readkey();}}

對以上**我作出以下解釋:

streamreader sr= new streamreader(afile, system.text.encoding.getencoding("gb2312"));

//如果有漢字,必需要填入第二個編碼引數,要不讀出來就是亂碼,如果全是英文,可以不要這個引數。

(strline = sr.readline())!=null

上式可以分解為如下:

1:   strline=sr.readline();

就是按行讀資料,行之間用「\n」分割;strline=sr.readline(); 是乙個賦值表示式,這個表示式也有乙個結果,就是strline的值。

2: if(strline!=null) 則條件成立,當readline讀到null的時候給了strline,這時strline為null,就表示讀取完成了。

C 中StreamReader讀取中文出現亂碼

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

c 用StreamReader對檔案讀取

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

C 中StreamReader讀取中文出現亂碼

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