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);

ストリームにテキスト行のみが含まれている場合StreamReaderは、よりも適していBinaryReaderます。文字列がバイナリデータ内に埋め込まれている場合は、他のEncoding.GetString人が示唆している方法を使用して文字列をデコードする方がおそらく良いでしょう。

于 2009-07-29T00:19:12.073 に答える