ฉันทำงานกับข้อมูล EBCDIC บางอย่างที่ฉันต้องแยกวิเคราะห์และค้นหาค่า Hex บางค่า ปัญหาที่ฉันพบคือดูเหมือนว่าฉันกำลังอ่านไฟล์ด้วยการเข้ารหัสที่ไม่ถูกต้อง ฉันเห็นว่าบันทึกของฉันเริ่มต้นด้วย "!
" (ซึ่งก็คือ x5A
ใน EBCDIC) แต่เมื่อทำการแปลงเป็นเลขฐานสิบหก บันทึกจะส่งกลับเป็น 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
ขอบคุณ!