При попытке отобразить поток байтов из 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 *****
Jon Skeet предоставил правильный ответ. Журналы возвращают \ n для новой строки (не \ r \ n) и \ 0 в конце каждой строки строки. Заменен \ n с помощью Environment.NewLine и \ 0 с string.Empty и странные символы исчезли. Спасибо, Джон.
Приносим извинения за неспособность сформулировать этот вопрос очень хорошо. Поток байтов поступает из udp-клиента, отправленного из hlds (Half Life Dedicated Server). Из того, что я могу найти в Интернете, кодировка должна быть ASCII. Я попробую персонажа 0 и дам вам, ребята, знать ... но что-то говорит мне прав. – David
Вот и все. Спасибо, Джон. – David