我一直在嘗試使用StreamReader
讀取日誌文件。我無法驗證它是什麼編碼,因爲當我在記事本+ +中打開它,並選擇ANSI編碼,我得到這樣的結果:VB.net不會閱讀文本文件正確
我得到使用ANSI時所需的字符,但它後跟之類的東西[NULL] [EOT] [SOH] [NUL] [SI]
當我嘗試和讀取VB中的文件(使用StreamReader
或ReadAll
)與選擇的結果字符串我回來ANSI編碼是完全錯誤的。
我怎麼能讀VB.net這樣的文件嗎?
我一直在嘗試使用StreamReader
讀取日誌文件。我無法驗證它是什麼編碼,因爲當我在記事本+ +中打開它,並選擇ANSI編碼,我得到這樣的結果:VB.net不會閱讀文本文件正確
我得到使用ANSI時所需的字符,但它後跟之類的東西[NULL] [EOT] [SOH] [NUL] [SI]
當我嘗試和讀取VB中的文件(使用StreamReader
或ReadAll
)與選擇的結果字符串我回來ANSI編碼是完全錯誤的。
我怎麼能讀VB.net這樣的文件嗎?
你可以使用IO.File.ReadAllText("File Location", encoding as System.Text.Encoding)方法,
Dim textFromFile as string = IO.File.ReadAllText("C:\Users\Jason\Desktop\login20130417.rdb", System.Text.Encoding.ASCII) 'Or Unicode, UFT32, UFT8, UFT7, BigEndianUnicode or default. Default is ANSI.
如果你還沒有得到你需要使用默認編碼(ANSI)的文本,那麼你可以嘗試其他6種不同的編碼方法。
更新...
看來,你的文件已損壞,使用下面的代碼我能得到什麼的是文件中的二進制表示,我得到這個,
1111111111111101000001110000010000000000000001010000000000010011000000000000100000000000000111100000000000100110000000000011100000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111110100000111000001000000000000000101000000000001001100000000000010000000000000011110000000000010100000000000111111111111110100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000110011100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
大量的空數據表明文件已損壞,這也解釋了爲什麼我們每次嘗試讀取文件時都無法獲取大量數據。
的代碼,
Dim fileData As String = IO.File.ReadAllText("C:\Users\Jason\Desktop\login20130417.rdb")
Dim i As Integer = 0
Dim binaryData As String = ""
Dim ch As String = ""
Do Until i = fileData.Length
ch = fileData.Chars(i)
bin = bin & System.Convert.ToString(AscW(ch), 2).PadLeft(8, "0")
i = i + 1
Loop
由於@Daniel A.懷特在他的評論暗示,該文件似乎並沒有被編碼像一個「正常」的文本文件。在這種情況下,StreamReader
將不起作用。我會嘗試使用BinaryReader。
Rdb文件?從來沒有聽說過。快速谷歌使得它不太清楚 - N64數據庫文件,Darkbot等..
但是考慮到你的名字,以及打開的文件的一般看,我會說,它的二進制文件。
如果你想閱讀vb.net中的文件,你需要一個排序庫,我不能幫你一個,直到你能夠闡明文件可能是什麼,或什麼是什麼它是用來創建的。
我能找到的最有用的東西就是R-project。 http://www.r-project.org 這個主頁似乎並不完全相關,但在其關於rdb文件的問題上還存在一些問題,還有大量的如何用c語言打開它。 –
http://www.tvlcsa.com/Stackoverflow/Login20130419.rdb - >它的日誌文件!你可以用記事本打開它。 – Mystx
我試着用記事本打開,沒有得到任何可讀的東西。 –
這看起來不像我見過的任何文本文件。看起來像它的專有格式。 –
下面是對文件的鏈接(這恰好是一個日誌文件!您可以在記事本中打開它)http://www.tvlcsa.com/Stackoverflow/Login20130419.rdb – Mystx
嗯,我試圖讓該編碼方法被使用,但我得到的是,它是用俄文字母編碼的,[koi-7](http://en.wikipedia.org/wiki/KOI7)encoding.lol – Sam