字符串中的NULL无法在NUL之后复制内容

时间:2013-07-29 10:14:46

标签: c# string nul

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

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

hello world NUL blah blah blah

当我添加观察者时,我在变量中看不到blah blah blah,或者如果我在整行的窗口中进行正常的复制和粘贴(上图),它只会复制到hello world。就像它被切断或终止掉了。从来没有遇到过这个。

也许这是我读取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字符后不知道任何内容。

提前致谢,Onam。

希望有足够的细节,如果不是,我会在需要时添加更多。

1 个答案:

答案 0 :(得分:2)

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