[問題] 如何以readline正確擷取中文字資料?

看板C_Sharp作者 (Orz)時間16年前 (2009/06/07 16:46), 編輯推噓1(103)
留言4則, 2人參與, 最新討論串1/1
1:89945.664:436829.016:26.7:75:-47:-66:-76:-62:15.1:3個衛星:06,07,25,,,,,,,,, 上面是我的rawdata資料. 格式是txt檔,共有數千行 其中最後面,參雜了三個中文字 我用 FileStream F1 = new FileStream(ofdOpen.FileName, FileMode.Open); StreamReader S1 = new StreamReader(F1, Encoding.Default); 這兩個指令開啟txt檔案 並用 string[] R1 = S1.ReadLine().Split(':'); 這個指令讀取每一行data 上面的例子,應該有12欄, 但是處理到第11欄的時候 因為讀取到了中文字,所以變成4?????06,07 R1[10]=4??????06,07 實際上應該為 R1[10]=4????? R1[11]=06,07 這樣的狀況. 有兩個問題請教. 1) 如何正確讀取中文字? 2) 如何將文字刪除,單純只要前面數字的部分. 我想這兩個問題應該是同一個. 因為好像可以利用replace指令置換文字. 我只要把文字置換成空格就可以了. 以上兩個問題,麻煩各位先進協助解答.. 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 120.125.83.171

06/07 16:54, , 1F
自問自答..= =
06/07 16:54, 1F

06/07 16:55, , 2F
把encoding改成 Encoding.UTF8就可正確讀取中文
06/07 16:55, 2F

06/07 16:55, , 3F
然後再搭配replace("個衛星","")就可以留下數字部分
06/07 16:55, 3F

06/12 11:01, , 4F
讀檔都涉及Encoding,但實際上Encoding.Default較常用
06/12 11:01, 4F
文章代碼(AID): #1AAtv8YF (C_Sharp)