如何在C#中将ASCII字符转换为字节

3

你好,我有一个ASCII转换为Byte的问题。我有以下代码:

byte M = Convert.ToByte('M');

但是这个转换是从UTF-16转换为字节,而我不想要这样。在我的问题中,我想发送ASCII代码的字节。

1
使用System.Text.Encoding - undefined
"字节的ASCII码"和从ASCII字符的UTF-16中获得的字节之间到底有什么区别? - undefined
@Corak Convert.ToByte对于不在Unicode C0控制字符和基本拉丁字符块中的特定字符有特殊行为。如果提问者能够说明在这种情况下想要实现什么,我们可以给出相应的指导。或者,输入已知是在C0控制字符和基本拉丁字符块中。 - undefined
2个回答

15

只需告诉编译器将char转换为byte:

 byte b = (byte)'M';

或者(请看Adwaenyth上方的评论)

byte b = Encoding.ASCII.GetBytes("M")[0];
b的值将为77(代表M的ASCII码)。
或者对于一个字符串:
byte[] b2 = Encoding.ASCII.GetBytes("text");

-1
为什么不使用 int a = 'm'; 这样的写法呢?它会将 m 转换为其 ASCII 码。然后你可以根据需要使用它。

4
.Net 中的字符仍然是 Unicode,占用 2 个字节。它不会将其转换为 ASCII,只是显示字符 'm' 的 2 个字节表示形式。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接