いくつかの EBCDIC データを解析して、いくつかの Hex 値を見つける必要があります。私が抱えている問題は、間違ったエンコーディングでファイルを読み込んでいるように見えることです。!
レコードが " " ( x5A
EBCDIC では a) で始まっていることがわかりますが、 16 進数に変換するx21
と、" " の ASCII 値であるとして返されます!
。
フレームワークに組み込みメソッドがあることを期待していましたが、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
ありがとう!