首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Utf8转换为UCS2字节数组

将Utf8转换为UCS2字节数组
EN

Stack Overflow用户
提问于 2015-06-08 19:34:49
回答 3查看 3.1K关注 0票数 1

我寻找一个代码样本来转换UTF8 (孟加拉字符)转换为UCS2字节数组。我有没有直接的方法来解决这个问题呢?不知何故,我得到了UCS2转换,但它是一个字符串值,而不是字节数组。

例如:

代码语言:javascript
复制
byte[] message;
message = UTF2UCS.GetBytes
          ( smsText.Substring(0, 
           smsText.Length > maxLength ? maxLength : smsText.Length)); 

我的返回输出应该是这样的。

谢谢

EN

回答 3

Stack Overflow用户

发布于 2015-06-08 19:46:24

像这样的东西是你能得到的最好的了。根据this link的说法

代码语言:javascript
复制
//1200  Unicode UCS-2 Little-Endian (BMP of ISO 10646)
//1201  Unicode UCS-2 Big-Endian

Encoding bytesUCS = Encoding.GetEncoding(1201);
Encoding utf8 = Encoding.UTF8;
byte[] utf8Bytes = utf8.GetBytes(UTF2UCS);
byte[] isoBytes = Encoding.Convert(utf8, bytesUCS, utf8Bytes);
票数 2
EN

Stack Overflow用户

发布于 2015-06-25 12:44:18

代码语言:javascript
复制
 byte[] utcs2Bytes = System.Text.Encoding.Convert(System.Text.Encoding.UTF8, System.Text.Encoding.Unicode, newArray);

newArray是用于存储编码字节的目标字节数组

票数 1
EN

Stack Overflow用户

发布于 2015-06-08 19:42:59

使用Encoding.GetBytesEncoding.GetString

代码语言:javascript
复制
byte[] bengaliUtf8 = ....
string stringValue = UTF8Encoding.GetString(bengaliUtf8);
byte[] utf16Value = UnicodeEncoding.GetBytes(stringValue);

UTF-16 ('Unicode')是你能得到的最好的,C#不支持UCS-2。如果您的输入没有代理项字符,则UTF-16的输出与UCS-2匹配。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30708098

复制
相关文章

相似问题

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