将Byte()转换为String的区别

时间:2017-06-06 21:11:54

标签: vb.net encoding byte ascii

让我们说我通过以下行将照片转换为字节数组:

Dim Bytes() As Byte
Bytes = IO.File.ReadAllBytes("C:\DT.jpg")

现在,Bytes()可以转换为文本并通过代码

显示在文本框中
TextBox1.Text = System.Convert.ToBase64String(Bytes)

以上行将打印如下内容: 9j / 4AAQSkZJRgABAQEAYABgAAD // gA7Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcgSlBFRyB2ODAp ... etc。

但 使用像

这样的功能时

TextBox1.Text = System.Text.Encoding.ASCII.GetString(Bytes) 结果就是:???? (四个问号)

我在附近工作并制作了一个循环

For i As Integer = 0 To Bytes.Length - 1
    TextBox1.Text = TextBox1.Text & Chr(bytes(I))
Next

并且textbox1显示如下:#3RðbrÑ$4á%ñ&'()* 56789 ..等 这正是bytes()中每个字节的ASCII表示。

我的问题是: 为什么它无法使用命名空间System.Text.Encoding下的函数返回Bytes的ASCII,UTF8,UTF7,ANSI等表示。 ?无论如何,不​​是通过使用循环获得表示?

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

Public Function ImageToBase64(image As Image, format As System.Drawing.Imaging.ImageFormat) As String
    Using ms As New MemoryStream()
        ' Convert Image to byte[]
        image.Save(ms, format)
        Dim imageBytes As Byte() = ms.ToArray()

        ' Convert byte[] to Base64 String
        Dim base64String As String = Convert.ToBase64String(imageBytes)
        Return base64String
    End Using
End Function

Public Function Base64ToImage(base64String As String) As Image
    ' Convert Base64 String to byte[]
    Dim imageBytes As Byte() = Convert.FromBase64String(base64String)
    Dim ms As New MemoryStream(imageBytes, 0, imageBytes.Length)

    ' Convert byte[] to Image
    ms.Write(imageBytes, 0, imageBytes.Length)
    Dim image__1 As Image = Image.FromStream(ms, True)
    Return image__1
End Function

代码从此处被盗并转换为vb.net

http://www.dailycoding.com/posts/convert_image_to_base64_string_and_base64_string_to_image.aspx