У меня есть небольшая проблема, когда я получаю данные с внешнего устройства в байтах, а затем преобразовываю их в строку. Я общаюсь с этим устройством через TcpClient.
Я получаю сообщение от этого внешнего устройства и форматирую его как строку. Проблема, которую я получаю, заключается в том, что сообщение, которое я получаю, содержит "NUL". Когда я пытаюсь прочитать его содержимое, строка завершается после того, как в строке встречается NUL. Например:
hello world NUL blah blah blah
Когда я добавляю наблюдателя, я не вижу blah blah blah
в переменной, или если я делаю обычную копию и вставляю в окна всю строку (выше), она копирует только до приветствия, мир. Как будто он обрывается или обрывается на строке. Никогда не сталкивался с этим раньше.
Возможно, так я читаю данные byte[]?
ИЗМЕНИТЬ
https://www.dropbox.com/s/mzr1rvmxiyh4yt3/stack.log
Ссылка на файл (надеюсь, это разрешено) и код для чтения:
StringBuilder str = new StringBuilder();
using (StreamReader reader = new StreamReader(@"c:\stack.log"))
{
str.Append(reader.ReadToEnd());
}
См. содержимое StringBuilder ничего не знает после символа NUL.
Заранее спасибо, Онам.
Надеюсь, что подробностей достаточно, если нет, я добавлю больше, если потребуется.