我正在爲自己的需要編寫一個很小的十六進制查看器。滯留在的情況下的標準Label控件不會出現在字符串中不可打印的字符:顯示不可打印的字符
public string ToASCIIstring(int numColumns)
{
string ret = String.Empty;
int stringBegin = 0;
for (int i = 0; i < Data.Length; i++)
{
int colNum = i % numColumns;
if ((colNum + 1 == numColumns) || (i == Data.Length -1))
{
ret += Encoding.ASCII.GetString(Data, stringBegin, colNum);
stringBegin = i + 1;
ret += "\n";
}
}
return ret;
}
這個方法返回正確的ASCII字符串,但其分配給Label.Text屬性後,就變成只是一個空字符串,並沒有顯示。
對此的任何幫助將是可愛的
P.S.我知道代碼是可怕的,但它永遠不會看到生產,它只是我自己的分析工具
那麼,不可打印的字符是...不可打印。像ASCII 7這樣的東西實際上沒有代表它們的字形。嘗試顯示'。'代替。 –
請嘗試Encoding.Unicode.GetString ...。也嘗試設置一些硬編碼的文本到tghe標籤,也許它只是在後臺 – VladL
如果你想顯示十六進制,那麼你必須實際將字節轉換爲十六進制。使用BitConverter.ToString()。你會發現在[這個答案](http://stackoverflow.com/a/2426258/17034)中都有的代碼示例。 –