C#读取unicode?

6 c# unicode ascii stream

我通过网络收到一条unicode消息,如下所示:

74 00 65 00 73 00 74 00 3F 00

我使用BinaryReader从我的套接字读取流,但问题是它不提供"ReadWideString"函数,或类似的东西.任何人都知道如何处理这个?

谢谢!

Dmi*_*ant 14

简单!

string str = System.Text.Encoding.Unicode.GetString(array);
Run Code Online (Sandbox Code Playgroud)

array你的字节数组在哪里.


Cha*_*lts 7

默认情况下,C#中的字符串是Unicode.尝试

string converted = Encoding.Unicode.GetString(data);
Run Code Online (Sandbox Code Playgroud)

其中data是包含Unicode数据的byte []数组.如果您的数据是大端,您可以尝试

string converted = Encoding.BigEndianUnicode.GetString(data);
Run Code Online (Sandbox Code Playgroud)


Mar*_*age 5

你可以使用StreamReader这样的:

StreamReader sr = new StreamReader(stream, Encoding.Unicode);
Run Code Online (Sandbox Code Playgroud)

如果您的流只包含文本行,那么StreamReader比它更合适BinaryReader.如果您的字符串嵌入在二进制数据中,那么使用该Encoding.GetString方法解码字符串可能比其他人建议的更好