如何获得UTF-16字节数组?
我有一个UTF-8
字符串,我需要获得UTF-16
编码的字节数组,那么如何将我的字符串转换为UTF-16
字节数组?
更新:
我的意思是我们有Encoding.Unicode.GetBytes()
甚至Encoding.UTF8.GetBytes()
函数来获取字符串的字节数组,那么UTF-16
呢? 我们没有任何Encoding.UTF16.GetBytes()
所以如何获取字节数组?
对于little-endian UTF-16,请使用Encoding.Unicode
。
对于big-endian UTF-16,请使用Encoding.BigEndianUnicode
。
或者,构造一个UnicodeEncoding
的显式实例,它允许您指定字节序,是否包含字节顺序标记,以及是否在无效数据上引发exception。
我有一个UTF-8字符串和……
不,你没有。 那是不可能的。 您可能有一个包含UTF-8编码文本的byte
序列(数组或流)。 但不是一个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);
该库定义了范围UTF7 , UTF8 , Unicode , UTF32 。 Unicode在.NET框架的上下文中是 UTF16。