I'm throwing together a program as a refresher for VB.net, and I figured I might as well make it do something that I have to do a lot anyways: Convert an input string into UTF-16LE and then into Base64.
Now, in PHP, I can do it like this:
<?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;
Sweet and simple.
...but in vb.net, I can't figure out how to get the string from
Dim strInput = inputBox.Text
convert it to UTF-16LE (it has to be UTF-16LE), and then the convert the resulting string to Base64.
Thank you!
Edit: Gserg and Steven's code both works equally well, and it helps to seeing two methods of converting text: One with specifiable encoding and one with Unicode. Steven's answer is more complete at this time, so I'll accept it. Thank you!
UTF-16LE in .NET, unfortunately, is simply called "Unicode" (code page ID 1200). So, the proper encoding object to use for UTF-16LE is Encoding.Unicode
. The first step is to get a byte array for the UTF-16LE representation of the string, like this:
Dim bytes() As Byte = Encoding.Unicode.GetBytes(inputBox.Text)
Then, you can convert those bytes into a Base64 string by using the Convert
class, like this:
Dim base64 As String = Convert.ToBase64String(bytes)
The Encoding
class has public properties for several of the most common encoding objects (e.g. Unicode
, UTF8
, UTF7
). If, in the future, however, you need to use a less common encoding object, you can get it by using the Encoding.GetEncoding
method. That method takes either a code page ID or name. The list of supported code pages can be found in the table on this page of the MSDN.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With