我正在尝试将二进制数转换为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());
}
答案 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());
}