我正在为自己的需要编写一个很小的十六进制查看器。滞留在的情况下的标准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)中都有的代码示例。 –