Vb.net 如何将文件的字节转换为字符并在文本框中显示?
我想将红色方框中的文本(见下图)导入vb.net windows窗体应用程序中的richtextbox(图像取自十六进制编辑器)有没有简单的方法Vb.net 如何将文件的字节转换为字符并在文本框中显示?,vb.net,byte,Vb.net,Byte,我想将红色方框中的文本(见下图)导入vb.net windows窗体应用程序中的richtextbox(图像取自十六进制编辑器)有没有简单的方法 我曾尝试使用google来找到我问题的答案,但我在那里找到的示例要么不起作用,要么解释了如何在visual basic中创建一个完整的十六进制编辑器。如果您知道字符是ASCII字符,那么下面的应能起作用 Public Function AsciiByteToChar(ByVal b As Byte) As Char Dim barr() As
我曾尝试使用google来找到我问题的答案,但我在那里找到的示例要么不起作用,要么解释了如何在visual basic中创建一个完整的十六进制编辑器。如果您知道字符是ASCII字符,那么下面的应能起作用
Public Function AsciiByteToChar(ByVal b As Byte) As Char
Dim barr() As Byte = New Byte() {b}
Dim carr() As Char = Encoding.ASCII.GetChars(barr)
Return carr(0)
End Function
如果要使用ASCII编码,只需执行以下操作:
RichTextBox1.Text = File.ReadAllText(filePath, Encoding.ASCII)
如果需要另一种编码,只需指定一种不同的编码即可。例如,对于UTF8,使用Encoding.UTF8
旁注:
从技术上讲,左边的十六进制数才是实际的字节值。右边(红色框中)的文本不是字节,而是这些字节的ASCII表示形式
查找所需的第一个字节
读取所需的长度
编码.UTF8
(或您喜欢的其他编码)将字节转换为字符TextBox
的Text
属性设置为您的值
Public Sub Sample()
Dim f As New FileStream("filepath")
f.Seek(byteOffset, SeekOrigin.Begin)
Dim buffer(byteLength) As Byte
f.Read(buffer, 0, byteLength)
Dim chars As String = Encoding.UTF8.GetString(buffer)
txtBox.Text = chars
End Sub
您希望使用哪种编码?ASCII,UTF8,UTF16,…?你是想偶然读取jpeg的EXIF标签吗?谢谢你的快速响应,但我的主要问题是首先导入文件的字节。我希望我的程序打开该文件并获取所有字节,然后在文本框中以UTF8格式显示它们。我尝试了以下操作,但没有成功:(,如果有帮助的话,我想从中获取字节的文件是一个.jpg文件。对不起,我对vb.net很陌生,它为byteoffset和ByTeleLength输入了什么值?我想让程序从头到尾读取字节。你说的从头到尾是什么意思?如果你指的是整个文件,请使用@Stevendogart的答案。如果你指的是某个部分对于该文件,您需要一种方法来计算第一个字节是什么索引
byteOffset
,最后一个是byteOffset+bytellength
。