如何获得UTF-16字节数组?

Afs*_*ani 13 c# encoding

我有一个UTF-8字符串,我需要得到UTF-16编码的字节数组,那么如何将我的字符串转换为UTF-16字节数组?

更新:
我的意思是我们有Encoding.Unicode.GetBytes()Encoding.UTF8.GetBytes()至函数来获取字符串的字节数组,那怎么样UTF-16?我们没有,Encoding.UTF16.GetBytes()所以如何获得字节数组?

Jon*_*eet 24

对于little-endian UTF-16,请使用Encoding.Unicode.

对于big-endian UTF-16,请使用Encoding.BigEndianUnicode.

或者,构造一个显式实例UnicodeEncoding,允许您指定字节顺序,是否包含字节顺序标记,以及是否在无效数据上引发异常.


Hen*_*man 10

我有一个UTF-8字符串和......

不,你没有.那是不可能的.您可能有一个包含byteUTF-8编码文本的序列(数组或流).但不是string.

.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);
Run Code Online (Sandbox Code Playgroud)

该库定义了范围UTF7,UTF8,Unicode,UTF32.Unicode 在.NET框架的上下文中 UTF16.

  • Unicode是UTF-16 ...是的,用.NET的方言.对于世界其他地方,Unicode是字符的枚举(代码点),UTF-16是至少2个字节的此枚举的一个实现 (4认同)