我正在把一个程序放在一起作为VB.net的复习,我想我也可以做一些我必须要做的事情:将输入字符串转换为UTF-16LE然后转换为Base64
现在,在PHP中,我可以这样做:
<?php
$UTF8_String = "example string";
$UTF16_String = mb_convert_encoding($UTF8_String,"UTF-16LE","UTF-8");
$base64_encoded = base64_encode($UTF16_String);
echo $base64_encoded;
甜蜜而简单。
...但在vb.net中,我无法弄清楚如何从
获取字符串 Dim strInput = inputBox.Text
将其转换为UTF-16LE(必须为UTF-16LE),然后将生成的字符串转换为Base64。
谢谢!
编辑:Gserg和Steven的代码同样运作良好,它有助于看到两种转换文本的方法:一种具有可指定的编码,另一种具有Unicode。史蒂文的答案在这个时候更完整,所以我会接受它。谢谢!
答案 0 :(得分:2)
Encoding.Unicode
。第一步是获取字符串的UTF-16LE表示的字节数组,如下所示:
Dim bytes() As Byte = Encoding.Unicode.GetBytes(inputBox.Text)
然后,您可以使用Convert
类将这些字节转换为Base64字符串,如下所示:
Dim base64 As String = Convert.ToBase64String(bytes)
Encoding
类具有几个最常见编码对象的公共属性(例如Unicode
,UTF8
,UTF7
)。但是,如果将来需要使用不太常见的编码对象,则可以使用Encoding.GetEncoding
方法获取它。该方法采用代码页ID或名称。支持的代码页列表可以在MSDN的this page表中找到。
答案 1 :(得分:1)
Dim b = Text.Encoding.GetEncoding("UTF-16LE").GetBytes(inputBox.Text)
Dim base64 = Convert.ToBase64String(b)