ASCII到Base32

时间:2015-08-22 18:24:32

标签: vb.net ascii 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

3 个答案:

答案 0 :(得分:1)

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。

答案 1 :(得分:1)

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

了解了您关注的陈述后,请使用System.Text.Encoding类将文本转换为<!DOCTYPE HTML> <html> <head> <title></title> </head> <body> <script src="jquery-1.11.1.min.js"></script> <script> window.fbAsyncInit = function() { FB.init({ appId : '1521775134725984', xfbml : true, status : true, cookie : true, version : 'v2.1' }); }; $("#message").on("click",function(){ FB.getLoginStatus(function(response) { if (response.status === 'connected') { var body = 'Reading JS SDK documentation'; FB.api('/me/feed', 'post', { message: body }, function(response) { if (!response || response.error) { alert('Error occured'); } else { alert('Post ID: ' + response.id); } }); } else { FB.login(function(){ }, {scope: 'publish_actions'}); } }); }); (function(d, s, id){ var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) {return;} js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_US/sdk.js"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); </script> </body> </html> 并将其传递给您的方法。

答案 2 :(得分:0)

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

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