當我從外部設備以字節爲單位獲取數據然後將其轉換爲字符串時,我遇到了一個小問題。我通過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。
希望有足夠的細節,如果不是我會增加更多,如果需要的話。
代碼會有幫助。 –
可能因爲您正在處理它,如同以null結尾的字符串。 – Belogix
附加鏈接到包含NUL的文件和讀取它的代碼。你可以直觀地看到發生了什麼。 –