Я работаю с некоторыми данными EBCDIC, которые мне нужно проанализировать и найти некоторые значения Hex. Проблема, с которой я столкнулась, заключается в том, что, кажется, я читаю файл с неправильной кодировкой. Я вижу, что моя запись начинается с «!
» (которая является x5A
в EBCDIC), но при выполнении преобразования в шестнадцатеричный код возвращается как x21
, что является значением ASCII для «!
».Преобразование значений EBCDIC Char в Hex (данные AFCD 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
Спасибо!
Данные структурированных полей - это то, что я пытаюсь получить. Спасибо за вход –