ネットワーク経由でUnicodeメッセージを受信しています。次のようになります。
74 00 65 00 73 00 74 00 3F 00
BinaryReaderを使用してソケットからストリームを読み取りますが、問題は、「ReadWideString」関数またはそれに類似した関数が提供されていないことです。誰かがこれに対処する方法を考えていますか?
ありがとう!
単純!
string str = System.Text.Encoding.Unicode.GetString(array);
ここarray
で、バイトの配列はです。
C#の文字列はデフォルトでUnicodeです。試す
string converted = Encoding.Unicode.GetString(data);
ここで、dataはUnicodeデータを含むbyte[]配列です。データがビッグエンディアンの場合は、試すことができます
string converted = Encoding.BigEndianUnicode.GetString(data);
StreamReader
次のように使用できます。
StreamReader sr = new StreamReader(stream, Encoding.Unicode);
ストリームにテキスト行のみが含まれている場合StreamReader
は、よりも適していBinaryReader
ます。文字列がバイナリデータ内に埋め込まれている場合は、他のEncoding.GetString
人が示唆している方法を使用して文字列をデコードする方がおそらく良いでしょう。