本文介绍了ASCIIEncoding.ASCII.GetBytes()返回意外值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
本C#code ...
This C# code...
string s = "\u00C0";
byte[] bytes = ASCIIEncoding.ASCII.GetBytes(s);
Trace.WriteLine(BitConverter.ToString(bytes));
产生下面的输出:
produces the following output:
3F
为什么不输出C0?
Why is the output not C0?
推荐答案
由于 \\ u00c0
不是ASCII(0-127范围内)。由于结果是EN codeD,就好像它是问号? -
(0x3F的)
Because \u00c0
is not ASCII ( 0-127 range). As result it is encoded as if it is question mark - ?
(0x3F).
查看 MSDN文章:
ASCIIEncoding对应于20127.在Windows code页面,因为ASCII是7位编码,ASCII字符限制为最低128统一code字,从 U + 0000至U + 007F 。如果使用默认的连接由Encoding.ASCII属性或ASCIIEncoding构造,人物的超出该范围返回codeR带有问号(?)的编码前被替换执行操作。
这篇关于ASCIIEncoding.ASCII.GetBytes()返回意外值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!