2013-07-29 31 views
0

當我從外部設備以字節爲單位獲取數據然後將其轉換爲字符串時,我遇到了一個小問題。我通過TcpClient與此設備進行通信。NUL後字符串中的NULL不能複製內容

我從此外部設備收到一條消息並將其格式化爲一個字符串。我得到的問題是,我收到的信息包含「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。

希望有足夠的細節,如果不是我會增加更多,如果需要的話。

+2

代碼會有幫助。 –

+0

可能因爲您正在處理它,如同以null結尾的字符串。 – Belogix

+0

附加鏈接到包含NUL的文件和讀取它的代碼。你可以直觀地看到發生了什麼。 –

回答

2

搜索並用空字符串或空格替換\ 0。

+0

等待SO讓我接受這個答案。沒有意識到這是簡單的! –