ASCII 到 Base32

ASCII to Base32

我正在努力将我的 vb 项目中文本框中的 10 个字符转换为 Base32。这是我的代码。我收到一个错误 'String' 类型的值无法转换为 '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

尝试使用 GetBytes 方法将字符串转换为字节数组:

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

txtbox.Text中的值为字符串,无法自动转换为字节数组。所以行 Dim DataToEncode As Byte() = txtbox.Text 无法编译。要获取字符串的 ASCII 表示,请使用 System.Text.Encoding.ASCII.GetBytes() 方法。

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

此外 VB.Net 中的字符串不存储 ASCII 值,它们使用 UTF-16。

如错误所示,您正试图获取一个字符串(txtbox.Text 的上下文)并将其放入一个 Byte() 类型的变量,一个字节数组。字符串不是字节数组,它是 字符 的逻辑序列,可以有不同的字节表示形式 - 是否将其视为 UTF-8 编码字符串? ASCII 字符串?完整的 UTF-32 字符串?所有这些都是可能是相同文本数据的不同字节表示。

一旦您知道您关心的表示形式,使用 System.Text.Encoding 类 将文本转换为 Byte() 并将其传递给您的方法。