我有一个 UTF-8
字符串,需要将其转换为 UTF-16
编码的字节数组,那么如何实现呢?
更新:
我的意思是我们有Encoding.Unicode.GetBytes()
或者Encoding.UTF8.GetBytes()
函数可以获取字符串的字节数组,那么 UTF-16
呢?我们没有任何 Encoding.UTF16.GetBytes()
函数,那么如何获取该字节数组呢?
Encoding.Unicode
。Encoding.BigEndianUnicode
。UnicodeEncoding
,允许您指定字节顺序、是否包含字节顺序标记以及在数据无效时是否抛出异常。我有一个UTF-8字符串,但实际上你没有。你可能有一个包含UTF-8编码文本的字节序列(数组或流),但不存在UTF-8字符串。
.net中的string
始终包含Unicode(更准确地说是UTF-16)。
那么,我该如何将我的字符串转换为UTF-16字节数组?
string myText = ...; // some string, maybe from an UTF8 file or any other source
byte[] utf16Data = Encoding.Unicode.GetBytes(mytext);
该库定义了范围 UTF7、UTF8、Unicode、UTF32。在.NET框架的上下文中,Unicode是UTF16。
Unicode 使用小端字节序列作为 UTF-16 格式的编码方式。
http://msdn.microsoft.com/zh-cn/library/system.text.encoding.aspx - Jeroen Vannevel