这段 C# 代码...
string s = "\u00C0";
byte[] bytes = ASCIIEncoding.ASCII.GetBytes(s);
Trace.WriteLine(BitConverter.ToString(bytes));
产生以下输出:
3F
为什么输出不是C0?
Because \u00c0
不是 ASCII(0-127 范围)。结果它被编码为问号 -?
(0x3F).
请参阅 MSDN 文章ASCII编码 http://msdn.microsoft.com/en-us/library/system.text.asciiencoding.aspx:
ASCIIEncoding 对应于 Windows 代码页 20127。由于 ASCII 是 7 位编码,因此 ASCII 字符被限制为最低 128 个 Unicode 字符,从U+0000 至 U+007F。如果使用 Encoding.ASCII 属性或 ASCIIEncoding 构造函数返回的默认编码器,则字符超出该范围的在编码前用问号 (?) 替换执行操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)