首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将字符串转换为UTF-16LE格式,然后转换为Base64格式?

如何将字符串转换为UTF-16LE格式,然后转换为Base64格式?
EN

Stack Overflow用户
提问于 2014-01-09 22:38:04
回答 2查看 2K关注 0票数 2

我拼凑了一个程序作为VB.net的刷新程序,我想我也可以让它做一些我无论如何都必须做的事情:将输入字符串转换成UTF16LE,然后再转换成Base64。

现在,在PHP中,我可以这样做:

代码语言:javascript
复制
<?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;

甜蜜而简单。

...but在vb.net中,我不知道如何从

Dim strInput = inputBox.Text

将其转换为UTF-16LE (必须为UTF-16LE),然后将结果字符串转换为Base64。

谢谢!

编辑: Gserg和Steven的代码都可以很好地工作,这有助于了解两种转换文本的方法:一种使用指定编码,另一种使用Unicode。Steven的答案在这个时候更完整,所以我接受它。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-09 22:54:32

不幸的是,.NET中的UTF-16LE被简单地称为"Unicode“(代码页ID1200)。因此,用于UTF-16LE的正确编码对象是Encoding.Unicode。第一步是获取字符串的UTF-16LE表示的字节数组,如下所示:

代码语言:javascript
复制
Dim bytes() As Byte = Encoding.Unicode.GetBytes(inputBox.Text)

然后,您可以使用Convert类将这些字节转换为Base64字符串,如下所示:

代码语言:javascript
复制
Dim base64 As String = Convert.ToBase64String(bytes)

Encoding类具有几个最常见的编码对象(例如UnicodeUTF8UTF7)的公共属性。但是,如果将来需要使用不太常用的编码对象,则可以使用Encoding.GetEncoding方法来获得它。该方法接受代码页ID或名称。支持的代码页列表可以在MSDN的this page上的表中找到。

票数 3
EN

Stack Overflow用户

发布于 2014-01-09 22:42:15

代码语言:javascript
复制
Dim b = Text.Encoding.GetEncoding("UTF-16LE").GetBytes(inputBox.Text)
Dim base64 = Convert.ToBase64String(b)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21023165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档