I am working at making what 10 characters go into a text box in my vb project convert into Base32. Here is my code. I am getting an error Value of type 'String' cannot be converted to 'Byte()'. WindowsApplication2
Private Sub Ok_Click(sender As Object, e As EventArgs) Handles Ok.Click
Dim DataToEncode As Byte() = txtbox.Text
Dim Base32 As String
Base32 = DataToEncode.ToBase32String()
Auth.Text = Base32
End Sub
Try converting the string into a byte array using the
GetBytes
method:The value in
txtbox.Text
is a string which can't be automatically converted to a byte array. So the lineDim DataToEncode As Byte() = txtbox.Text
can't be compiled. To get the ASCII representation of a string use theSystem.Text.Encoding.ASCII.GetBytes()
method.Also strings in VB.Net do not store ASCII values, they use UTF-16.
As the error indicates, you're trying to take a string (the context of
txtbox.Text
) and put it in a variable of typeByte()
, an array of bytes. A string isn't a byte array, it's a logical sequence of characters that can have different representation in bytes - do you want to treat it as a UTF-8-encoded string? An ASCII string? A full-blown UTF-32 string? All these are different byte representations of what might be the same textual data.Once you know the representation you care about, use the
System.Text.Encoding
classes to convert the text to aByte()
and pass that to your method.