首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

字符串转字节有关问题

2012-04-03 
字符串转字节问题遇到问题了,先上代码C# codechar a (char)(0x1C)char b (char)(0x4B)char c (cha

字符串转字节问题
遇到问题了,先上代码

C# code
char a = (char)(0x1C);char b = (char)(0x4B);char c = (char)(0xAF);String s = a.ToString() + b.ToString() + c.ToString();byte[] mybyte = System.Text.Encoding.Default.GetBytes(s);


mybyte期望得到的结果是 1C 4B AF

但是实际上得到的结果是 1C 4B A1 A5

那位高手说一下原因

[解决办法]
char c = (char)(0xAF);这个已经超出了char的范围,至于GetBytes是如何工作的,可以用reflector去看看.net的源码
[解决办法]
转字节和编码方式有关,System.Text.Encoding.Default是什么编码方式不太清楚,可能是utf7之类的,

你的预期是asscii码,应该这样转:System.Text.Encoding.ASCII.GetBytes(s);

不过很奇怪,msdn上说System.Text.Encoding.Default就是System.Text.Encoding.ASCII,你可以试试,
[解决办法]



分别用
System.Text.Encoding.ASCII.GetBytes(s)
System.Text.Encoding.Default.GetBytes(s)
System.Text.Encoding.Unicode.GetBytes(s)
测试,得到
3
4
6

关注了下 System.Text.Encoding.Default 是
System.Text.DBCSCodePageEncoding

得到
http://hi.baidu.com/oudioppa/blog/item/7a5cbcefc8f8f71efcfa3ce1.html
http://blog.csdn.net/jgood/article/details/4540466

供你参考

热点排行