我使用一些需要解析并找到一些十六进制值的 EBCDIC 数据。我遇到的问题是,我似乎正在使用不正确的编码读取文件。我可以看到我的记录以“ ”开头(在 EBCDIC!
中是 a ),但是在转换为十六进制时,它返回为 a ,这是“ ”的 ASCII 值。x5A
x21
!
我希望框架中有一个内置方法,但恐怕我将不得不创建一个自定义类来正确映射 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
谢谢!