HLDS(Half-Life Dedicated Server)からのバイトストリームをテキストボックスに表示しようとすると、次のような奇妙なブロック状の疑問符文字が表示されます。
[?]
これがバイトストリームからのサンプル行です(奇妙な文字の代わりに[?]が付いています):
CPU In Out Uptime Users FPS Players[?] 0.00 0.97 0.91 2806 182 297.25 1[?]
バイトストリームを文字列として表示する方法は次のとおりです。
byte[] bytes = listener.Receive(ref sender); // get bytes from stream
TextBox1.Text = Encoding.ASCII.GetString(bytes, 0, bytes.Length); // write to textbox
文字は[CR][LF]
通常表示されるはずの場所に表示されます。なぜ奇妙な文字が表示されるのですか?奇妙な文字を削除したり、エンコーディングを修正したりするにはどうすればよいですか?
***** UPDATE *****
ジョンスキートは正しい答えを提供しました。ログは、改行(\ r \ nではなく)に対して\ nを返し、ストリーミングされた各ログ行の最後に\0を返します。\ nをEnvironment.NewLineに、\0をstring.Emptyに置き換えました。奇妙な文字はなくなりました。ジョンありがとう。