7

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

74 00 65 00 73 00 74 00 3F 00

我正在使用 BinaryReader 从我的套接字读取流,但问题是它不提供“ReadWideString”功能或类似的功能。任何人都知道如何处理这个问题?

谢谢!

4

3 回答 3

16

简单的!

string str = System.Text.Encoding.Unicode.GetString(array);

array你的字节数组在哪里。

于 2009-07-29T00:19:11.043 回答
8

C# 中的字符串默认为 Unicode。尝试

string converted = Encoding.Unicode.GetString(data);

其中 data 是一个包含 Unicode 数据的 byte[] 数组。如果你的数据是大端的,你可以试试

string converted = Encoding.BigEndianUnicode.GetString(data);
于 2009-07-29T00:18:21.900 回答
5

你可以使用StreamReader这样的:

StreamReader sr = new StreamReader(stream, Encoding.Unicode);

如果您的流仅包含文本行,则StreamReaderBinaryReader. 如果您的字符串嵌入在二进制数据中,那么最好使用Encoding.GetString其他人建议的方法来解码字符串

于 2009-07-29T00:19:12.073 回答