Alt + Numpad键生成哪种编码?

时间:2010-04-07 11:29:01

标签: c# character-encoding

简而言之:

对于此代码:

Encoding.ASCII.GetBytes("‚")

我希望输出为130,但这给了我63。

我正在使用Alt + 0130键入字符串。

2 个答案:

答案 0 :(得分:2)

在我的设置上:

Encoding.ASCII.GetBytes("‚"); // 63
Encoding.Default.GetBytes("‚"); // 130

当然,“默认”很可能与环境有关......

答案 1 :(得分:2)

当您尝试使用ASCII编码对字符串进行编码时,它将转换为问号,因为ASCII字符集中没有此类字符。问号的字符代码是63。

您需要使用支持该字符的编码来获取它的实际字符代码。

一种选择是使用Encoding.Default属性来获取系统代码页的编码,正如David建议的那样。但是,由于系统代码页可能不同,因此无法保证在所有计算机上提供相同的结果。

unicode字符代码是8218,只需将字符转换为int即可获得:

int characterCode = (int)'‚';

由于这不取决于任何系统设置,您应该考虑是否可以使用它而不是编码的字节值。