我使用一些EBCDIC數據來分析和查找一些十六進制值。我遇到的問題是,看來我正在用不正確的編碼讀取文件。我可以看到我的記錄以「!
」(這是EBCDIC中的x5A
)開頭,但是當轉換爲十六進制時,它返回爲x21
,這是「!
」的ASCII值。將EBCDIC字符轉換爲十六進制值(AFP EBCDIC數據)
我希望框架中有一個內置的方法,但我恐怕必須創建一個自定義類來正確映射EBCDIC字符集。
Using fileInStream As New FileStream(inputFile, FileMode.Open, FileAccess.Read)
Using bufferedInStream As New BufferedStream(fileInStream)
Using reader As New StreamReader(bufferedInStream, Encoding.GetEncoding(37))
While Not reader.EndOfStream
Do While reader.Peek() >= 0
Dim charArray(52) As Char
reader.Read(charArray, 0, charArray.Length)
For Each letter As Char In charArray
Dim value As Integer = Convert.ToInt16(letter)
Dim hexOut As String = [String].Format("{0:x}", value)
Debug.WriteLine(hexOut)
Next
Loop
End While
End Using
End Using
End Using
謝謝!
結構化字段數據是我想要得到的。感謝您的意見 – 2009-04-13 21:46:24