我有一个UTF-8
字符串,我需要获取UTF-16
编码的字节数组,那么如何将我的字符串转换为UTF-16
字节数组?
更新:
我的意思是我们有Encoding.Unicode.GetBytes()
甚Encoding.UTF8.GetBytes()
至函数来获取字符串的字节数组,那UTF-16
呢?我们没有,Encoding.UTF16.GetBytes()
所以我怎样才能得到字节数组?
对于 little-endian UTF-16,请使用Encoding.Unicode
.
对于大端 UTF-16,请使用Encoding.BigEndianUnicode
.
或者,构造一个显式实例UnicodeEncoding
,允许您指定字节顺序、是否包含字节顺序标记以及是否在无效数据上引发异常。
我有一个 UTF-8 字符串和...
不,你没有。那是不可能的。您可能有一个包含byte
UTF-8 编码文本的 s 序列(数组或流)。但不是一个string
。
.netstring
始终包含 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。