天天看點

C#中StreamReader讀取中文出現亂碼

是以.NET檔案的預設編碼也是Unicode。除非另外指定,StreamReader的預設編碼為Unicode,

而不是目前系統的ANSI代碼頁。但是文檔大部分還是以ANSI編碼存儲,中文文本使用的是GB2312,是以才造成中文亂碼

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

使用System.Text.Encoding.Defaul告訴StreamReader采用目前作業系統的編碼即可。

如:

1

2

3

4

5

6

7

8

9

<code>FileStream fs = </code><code>new</code> <code>FileStream(</code><code>"1.txt"</code><code>, FileMode.Open, FileAccess.Read); </code>

<code>               </code><code>StreamReader read = </code><code>new</code> <code>StreamReader(fs, Encoding.Default); </code>

<code>               </code><code>string</code> <code>str; </code>

<code>               </code><code>while</code> <code>(read.Peek() != -1) </code>

<code>               </code><code>{ </code>

<code>                   </code><code>str = read.ReadLine(); </code>

<code>                   </code><code>Console.WriteLine(str); </code>

<code>               </code><code>} </code>

<code>               </code><code>read.Close(); </code>

沒有整理與歸納的知識,一文不值!高度概括與梳理的知識,才是自己真正的知識與技能。 永遠不要讓自己的自由、好奇、充滿創造力的想法被現實的架構所束縛,讓創造力自由成長吧! 多花時間,關心他(她)人,正如别人所關心你的。理想的騰飛與實作,沒有别人的支援與幫助,是萬萬不能的。

    本文轉自wenglabs部落格園部落格,原文連結:http://www.cnblogs.com/arxive/p/6403274.html,如需轉載請自行聯系原作者

繼續閱讀