-2

我正在努力将我的 vb 项目中的文本框中的 10 个字符转换为 Base32。这是我的代码。我收到错误“字符串”类型的值无法转换为“字节()”。Windows应用程序2

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
4

3 回答 3

1

in 的值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。

于 2015-08-22T18:29:13.230 回答
1

如错误所示,您正在尝试获取一个字符串( 的上下文txtbox.Text)并将其放入 type 的变量中Byte(),即字节数组。字符串不是字节数组,它是一个逻辑字符序列,可以有不同的字节表示 - 你想把它当作一个 UTF-8 编码的字符串吗?一个ASCII字符串?一个成熟的 UTF-32 字符串?所有这些都是可能是相同文本数据的不同字节表示。

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

于 2015-08-22T18:29:59.177 回答
0

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

Dim DataToEncode As Byte() = Encoding.UTF8.GetBytes(txtbox.Text)
于 2015-08-22T18:29:05.457 回答