NULL в строке не может копировать содержимое после NUL
У меня небольшая проблема, когда я получаю данные с внешнего устройства в байтах, а затем преобразую их в строку. Я общаюсь с этим устройством через TcpClient.
Я получаю сообщение от этого внешнего устройства и форматирую его как строку. Проблема, которую я получаю, состоит в том, что сообщение, которое я получаю, содержит "NUL". Когда я пытаюсь прочитать его содержимое, строка завершается после того, как в строке встречается NUL. Например:
hello world NUL blah blah blah
Когда я добавляю наблюдателя, я не вижу blah blah blah
в переменной или, если я сделаю обычное копирование и вставку в окна целой строки (выше), он будет копироваться только в hello world. Это похоже на то, как будто оно обрезано или оборвано. Никогда не сталкивался с этим раньше.
Возможно, так я читаю данные байта []?
РЕДАКТИРОВАТЬ
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.
Заранее спасибо, Онам.
Надеюсь, что достаточно подробностей, если нет, я добавлю больше, если потребуется.