0

当我以字节为单位从外部设备取回数据然后将其转换为字符串时,我遇到了一个小问题。我正在通过 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 字符之后什么都不知道。

在此先感谢,奥南。

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

4

1 回答 1

2

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

于 2013-07-29T10:22:14.007 回答