简而言之:
对于此代码:
Encoding.ASCII.GetBytes("‚")
我希望输出为130,但这给了我63。
我正在使用Alt + 0130键入字符串。
答案 0 :(得分:2)
在我的设置上:
Encoding.ASCII.GetBytes("‚"); // 63
Encoding.Default.GetBytes("‚"); // 130
当然,“默认”很可能与环境有关......
答案 1 :(得分:2)
当您尝试使用ASCII编码对字符串进行编码时,它将转换为问号,因为ASCII字符集中没有此类字符。问号的字符代码是63。
您需要使用支持该字符的编码来获取它的实际字符代码。
一种选择是使用Encoding.Default
属性来获取系统代码页的编码,正如David建议的那样。但是,由于系统代码页可能不同,因此无法保证在所有计算机上提供相同的结果。
unicode字符代码是8218,只需将字符转换为int即可获得:
int characterCode = (int)'‚';
由于这不取决于任何系统设置,您应该考虑是否可以使用它而不是编码的字节值。