我期待我的测试代码:
string Test = ASCIIEncoding.ASCII.GetString(new byte[] { 0x01, 0x02, 0x03, 0x04 });
返回包含“????”的字符串但事实并非如此。如何获取一组字节的ASCII编码,其中所有控制字符和顶部位设置字符都转换为“?”?
谢谢,安迪
更新
我想我的问题应该是:如何让StreamWriter只输出可打印的ASCII字符?我需要生成一些文本文件,这些文件将与古老的程序一起使用,这些程序会对文件中的控制字符产生影响。
答案 0 :(得分:1)
没有自动转换?每本身。通常?表示由主持人程序强加的不可读的字符。
但是,如果您打算转换这些,那么用户会看到一个?相反,请尝试以下代码:
string newStr = "";
foreach (char c in MyString) {
if ((int.Parse(c) < 32)) {
c = "?";
}
newStr = (newStr + c.ToString);
}