1. 程式人生 > >C#中字串中含有\0的問題處理

C#中字串中含有\0的問題處理

問題描述

在byte轉換為字串的過程中,如果byte的值為0,則轉換成字串時變為’\0’字元,’\0’字元在C#中意味著字串結束,如果後面再有字元,則讀取字串的程式也不能讀取和顯示出來。

如下圖所示,構造一個位元組陣列,其中含有’\0’字元,在程式執行時通過跟蹤可以看出:

(1)  字串中含有’\0’字元及後續字元

(2)  二進位制陣列中含有所有字元,並且’\0’字元的值為0;

(3)  在程式中查詢字串的值時只能顯示’\0’字元前的字元

 

同時在程式中測試的結果,也是隻能顯示’\0’字元前的字元。後面的字元被自動截斷。下圖所示。

程式中窗體測試結果。

通過前面的分析可以看出’\0’字元,其實就是ASCII中的0,下圖為查詢到的標準ASCII碼。


處理措施,

針對程式中出現\0字元後後續字元不能顯示的問題,可以把\0變為相應的字元別的字元,如*等加以解決,程式碼如下:

string.Replace('\0','*')