如何在C#中显示二进制数的扩展ASCII字符?

时间:2014-12-13 20:58:31

标签: c# binary ascii typeconverter

我正在尝试将二进制数转换为ASCII字符。当我在文本框或标签中显示二进制数字时,我得到符号"?"。我希望所有的ASCII字符都包含带有原始符号的扩展字符。

我无法获得扩展的。我正在寻找两天,我无法理解。

有人能帮助我吗?

编辑:我的代码是这样的,当我尝试扩展ASCII时,我只是进入标签"?"

简单说明:

String binary= "11001100";
label1.text = BinaryToString(binary);


public static string BinaryToString(string data)
    {
        List<Byte> byteList = new List<Byte>();

        for (int i = 0; i < data.Length; i += 8)
        {
            byteList.Add(Convert.ToByte(data.Substring(i, 8), 2));
        }

        return Encoding.ASCII.GetString(byteList.ToArray());
    }

1 个答案:

答案 0 :(得分:0)

Encoding.ASCII specifically says它仅适用于最低128个字符。您可能真正想要的单个字节的任意转换是代码页437,基于related answer

private static Encoding cp437 = Encoding.GetEncoding(437);
public static string BinaryToString(string data) {
    List<Byte> byteList = new List<Byte>();

    for (int i = 0; i < data.Length; i += 8) {
        byteList.Add(Convert.ToByte(data.Substring(i, 8), 2));
    }

    return cp437.GetString(byteList.ToArray());
}