ASCIIEncoding和下控制字符

时间:2012-10-02 12:04:45

标签: c# character-encoding

我期待我的测试代码:

string Test = ASCIIEncoding.ASCII.GetString(new byte[] { 0x01, 0x02, 0x03, 0x04 });

返回包含“????”的字符串但事实并非如此。如何获取一组字节的ASCII编码,其中所有控制字符和顶部位设置字符都转换为“?”?

谢谢,安迪

更新

我想我的问题应该是:如何让StreamWriter只输出可打印的ASCII字符?我需要生成一些文本文件,这些文件将与古老的程序一起使用,这些程序会对文件中的控制字符产生影响。

1 个答案:

答案 0 :(得分:1)

没有自动转换?每本身。通常?表示由主持人程序强加的不可读的字符。

但是,如果您打算转换这些,那么用户会看到一个?相反,请尝试以下代码:

string newStr = "";
foreach (char c in MyString) {
    if ((int.Parse(c) < 32)) {
        c = "?";
    }
    newStr = (newStr + c.ToString);
}