2010-10-29 51 views
0

替換特殊字符我有一個​​文件,下面的文字......解析和從文件

blah blah ñ blah

通知的ñ符號。

我正在用StreamReader.ReadLine讀取它,然後嘗試用string.Replace替換特殊字符。

由於某種原因,這不起作用,它似乎與StreamReader有關。當我在閱讀完該行後檢查調試器中的字符串時,我得到了文本編輯器無法渲染字符時顯示的那種盒子形狀。

試圖直接在代碼中類似的正常工作......

int test = "helloñworld".IndexOf('ñ');

所以我想,這一定是StreamReader的。

任何想法?

+0

你使用任何編碼?看,這個鏈接可能會幫助你,因爲它處理一些類似:http://stackoverflow.com/questions/640242/file-encoding-when-reading-a-file-with-streamreader – 2010-10-29 11:09:39

+0

我的意思是,他是專門給任何特定的編碼?不是隱含的,而是明確指定的。 – 2010-10-29 11:13:51

回答

2

使用無論是StreamReader(Stream, Encoding)構造函數或StreamReader(String, Encoding)文本文件的正確的編碼創建StreamReader的。現在常見的編碼是拉丁文1或UTF-8。

+0

我如何知道我的文本文件是在什麼編碼? – fearofawhackplanet 2010-10-29 11:13:28

+0

@fear:我相信你保存了它。取決於您的編輯器可能是OEM字符集(CP850或437),拉丁語1到Unicode(UTF-8或UTF-16)。不過,我想CP1252是最可能的選擇。 – Joey 2010-10-29 11:15:59

+0

不,我沒有保存它,它是從20歲的數據庫中導出的。無論如何,通過試驗和錯誤,似乎UTF7的作品。 – fearofawhackplanet 2010-10-29 11:22:37

0

在重載的Streamreader構造函數中設置正確的編碼。

希望這有助於, 伊利亞