は、私は次のようになり、ネットワークを介してユニコードメッセージを受信しています:私は私のソケットからのストリームを読み取るためBinaryReaderを使用していますC#read unicode?
74 00 65 00 73 00 74 00 3F 00
が、問題それは "ReadWideString"関数、またはそれに類似した関数を提供していないということです。誰もこれに対処するアイデアですか?
ありがとうございます!
は、私は次のようになり、ネットワークを介してユニコードメッセージを受信しています:私は私のソケットからのストリームを読み取るためBinaryReaderを使用していますC#read unicode?
74 00 65 00 73 00 74 00 3F 00
が、問題それは "ReadWideString"関数、またはそれに類似した関数を提供していないということです。誰もこれに対処するアイデアですか?
ありがとうございます!
シンプル!
string str = System.Text.Encoding.Unicode.GetString(array);
ここで、array
は、バイト配列です。
C#の文字列は、デフォルトではUnicodeです。お試しください
string converted = Encoding.Unicode.GetString(data);
ここで、dataはUnicodeデータを含むバイト[]配列です。あなたのデータがビッグエンディアンの場合、試すことができます
string converted = Encoding.BigEndianUnicode.GetString(data);
2バイトごとに1バイトごとにutf-8があります。 –
あなたはこのようStreamReader
使用することができます:あなたのストリームはテキストのみの行が含まれている場合、StreamReader
がBinaryReader
よりも適している
StreamReader sr = new StreamReader(stream, Encoding.Unicode);
を。あなたの文字列がバイナリデータの中に埋め込まれている場合は、Encoding.GetString
メソッドを使用して文字列をデコードする方が良いでしょう。
ありがとう!それは他の人のおかげで働いています。 –