2007年7月5日 星期四

StreamReader 讀取中文亂碼解決方法

在C#讀取記事本時,在讀取中文時,會出現亂碼的問題
作業系統在檔案通常採用Unicode 編碼
但中文還是以Big5編碼才會造成亂碼的情況




本來會造成亂碼的語法如下:

Dim reader As StreamReader =
New StreamReader(FileName)



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

[VB .Net] 的寫法

Dim reader As StreamReader = _
New StreamReader(FileName, System.Text.Encoding.Default)

[C# .Net] 的寫法

StreamReader reader = _
New StreamReader(FileName, System.Text.Encoding.Default)


System.Text.Encoding 可參考 MSDN:
http://msdn.microsoft.com/library/en-us/cpref/html/frlrfsystemtextencodingclasstopic.asp

7 則留言:

匿名 提到...

中文照樣會亂碼,根本沒作用

拍郎 提到...

我記得是有用,你可以檢查一下,中文裡是不是有什麼難字,這也有可能是發生亂碼的原因

如果可以 可以提供code 大家一起 研究 討論

Janus 提到...

簡單,但對我非常有用,謝謝你了!

Sharmen 提到...

謝謝你,非常有用!!

匿名 提到...

幫了我個大忙,
實在是太感謝你了!

匿名 提到...

哈囉
我想詢問一下~~不知可否請教一下。

我有一個utf8的文字檔,
用streamreader,然後轉byte
就可以依位置讀檔了


但是遇到難字,轉byte,結果就變亂碼了
如果不轉byte,位置卻都偏移了
有什麼解套方式嗎...

Unknown 提到...

很讚.受教了.感恩