我使用一些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