ASCII to Base32

倖福魔咒の 提交于 2019-12-13 10:53:02

问题


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

回答1:


The value in txtbox.Text is a string which can't be automatically converted to a byte array. So the line Dim DataToEncode As Byte() = txtbox.Text can't be compiled. To get the ASCII representation of a string use the System.Text.Encoding.ASCII.GetBytes() method.

Dim DataToEncode As Byte() = System.Text.Encoding.ASCII.GetBytes(txtbox.Text)

Also strings in VB.Net do not store ASCII values, they use UTF-16.




回答2:


As the error indicates, you're trying to take a string (the context of txtbox.Text) and put it in a variable of type Byte(), 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 a Byte() and pass that to your method.




回答3:


Try converting the string into a byte array using the GetBytes method:

Dim DataToEncode As Byte() = Encoding.UTF8.GetBytes(txtbox.Text)


来源:https://stackoverflow.com/questions/32159403/ascii-to-base32

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!