byte数组转换成字符串的问题

njzc 2002-07-14 11:43:10
byte[] msg=new msg[36];
msg[0]=0x08;
msg[1]=0x05;
msg[2]=0x12;
msg[3]=0x22;
msg[4]=0x81;
msg[5]=0x00;
msg[6]=....
怎么把这个转换成字符串?
我试过好多次均有问题,特别是会把msg[4]不知道转换成什么了。。
...全文
673 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
12wywy 2002-07-15
  • 打赏
  • 举报
回复
我觉得两端必须匹配!
System.Text.Encoding.Default.GetString(byte[])
对于简体中文版,相当于System.Text.Encoding.GetEncoding("GB2313").GetString(byte[])
而服务器端,版本是什么?


njzc 2002-07-15
  • 打赏
  • 举报
回复
我就是用楼上的这个方法转换的,需要把这个字符串发送到服务器端,但是在服务器端解码的时候那个msg[4]却不是0x81了。
triout 2002-07-15
  • 打赏
  • 举报
回复
我在ASP.NET中也回答了,不过我不常用的东西都很少查阅资料。

还是dreammaster(天涯)厉害!!!
dreammaster 2002-07-15
  • 打赏
  • 举报
回复
String s = System.Text.Encoding.Default.GetString(byte[] content,int start,int end)

Try this.
niwalker 2002-07-15
  • 打赏
  • 举报
回复
不知你要你要转换成什么样的字符串,ASC码还是数字。显然,如果是ASC码的话,你的数组中有许多不可视字符,对于这些字符你必须做替换,如果式数字的话,代码如下:

string strMsg=((int)msg[i]).ToString();
12wywy 2002-07-15
  • 打赏
  • 举报
回复
哈哈!只有每个编码都试试了

肯定是两端匹配的问题。
如果两端都是Windows平台,挨个试,应该能找到。另外要注意C#string用的
unicode.
如果服务器端是unix,还有字节顺序的问题。
dreammaster 2002-07-15
  • 打赏
  • 举报
回复
我认为是两种字符集不匹配造成的,同意 12wywy()
njzc 2002-07-15
  • 打赏
  • 举报
回复
服务器端是VC写的程序,源码看不到。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧