我有两行简单的Python脚本,其中len(fileData)是3530
Python
imgFile = file(inputFile, "rb")
fileData = imgFile.read()
我正在尝试将其转换为vb.net。如果我这样做,我可以获得匹配的长度,但是我试图将数据本身实际上变为字符串变量:
VB.NET
Using reader As New BinaryReader(File.Open(inputFile, FileMode.Open))
Dim length As Integer = reader.BaseStream.Length
End Using
我尝试使用
VB.NET
Dim fileData As String = File.ReadAllText(inputFile)
但是当我做len(fileData)时,它是3528,所以有些不对劲。
我只想打开并读取二进制文件到一个字符串变量,看它的长度是3530,因为它在Python脚本中正确工作。
我错过了什么?
答案 0 :(得分:1)
您错过了并非每个二进制数据都可以表示为String的事实。
如果您只想要原始数据及其长度,您可以将文件读入字节数组:
Dim myBytes() As Byte = IO.File.ReadAllBytes("myFile.dat")
Console.WriteLine(myBytes.Length)
如果确实需要将数据作为String,则必须考虑String的编码:
Dim myString As String = IO.File.ReadAllText("myFile.dat", System.Text.Encoding.UTF8)
没有第二个参数的 ReadAllText()
假定编码(最有可能)Encoding.Default
这与您的系统代码页是ANSI。