是否可以将short数组转换为string,然后显示文本?
short[] a = new short[] {0x33, 0x65, 0x66, 0xE62, 0xE63};
Run Code Online (Sandbox Code Playgroud)
有utf16(泰语字符)包含在数组中.它如何输出并显示泰语和英语单词?
谢谢.
Jus*_*now 10
您可以使用此方法从UTF16字节数组中获取字符串:
System.Text.Encoding.Unicode.GetString(bytes)
Run Code Online (Sandbox Code Playgroud)
但是,这只接受一个字节数组.因此,您首先必须将短路转换为字节:
var bytes = a.SelectMany(x => BitConverter.GetBytes(x)).ToArray();
Run Code Online (Sandbox Code Playgroud)
或者稍微冗长但效率更高的代码:
var bytes = new byte[a.Length * 2];
Buffer.BlockCopy(a, 0, bytes, 0, a.Length * 2);
Run Code Online (Sandbox Code Playgroud)
我略提了其他人的答案,但这是做同一件事的一种更干净的方法:
short[] shorts = new short[] { 0x33, 0x65, 0x66, 0xE62, 0xE63 };
char[] chars = Array.ConvertAll(shorts, Convert.ToChar);
string result = new string(chars);
Run Code Online (Sandbox Code Playgroud)
尝试这个:
//short[] a = new short[] {0x33, 0x65, 0x66, 0xE62, 0xE63};
char[] a = new char[] {0x33, 0x65, 0x66, 0xE62, 0xE63};
string s = new string(a);
Console.WriteLine(s);
Run Code Online (Sandbox Code Playgroud)