字符串中的NULL可以';t在NUL之后复制内容

本文关键字:NUL 之后 复制 NULL 可以 字符串 | 更新日期: 2023-09-27 18:25:23

当我从外部设备以字节为单位获取数据,然后将其转换为字符串时,我遇到了一个小问题。我正在通过TcpClient与该设备通信。

我从这个外部设备收到一条消息,并将其格式化为字符串。我收到的问题是,我收到的消息包含一个"NUL"。当我尝试读取它的内容时,字符串在遇到NUL后终止。例如:

hello world NUL blah blah blah

当我添加一个观察程序时,我在变量中看不到blah blah blah,或者如果我在窗口中复制并粘贴整行(如上),它只会复制到helloworld。它就像是被切断或终止于字符串。以前从未遇到过这种情况。

也许是我读取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字符之后的任何内容。

提前谢谢,奥南。

希望有足够的细节,如果没有,如果需要,我会补充更多。

字符串中的NULL可以';t在NUL之后复制内容

搜索并用空字符串或空格替换''0。