您的位置:程序门 -> .net技术 -> c#



关于字符转换byte[]的一个问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


关于字符转换byte[]的一个问题[已结贴,结贴人:assicen]
发表于:2007-03-09 19:38:56 楼主
byte[]     bytee=new   byte[640];
string[]   msg=new   string[3];
msg[0]   =   "0x05 ";
msg[1]   =   "0x01 ";
msg[2]   =   "0x02 ";
bytee=system.text.encoding.bigendianunicode.getbytes(msg.tochararray());
sock.send(bytee,   bytee.length,   0);//sock已连接

第一个问题  
msg[0]= "0x05 "
这样的写法对吗


第二个问题
程序编译到msg.tochararray());报错
“system.array”并不包含“tochararray”
求解
发表于:2007-03-09 19:50:531楼 得分:0
string   msg= "abc "
发表于:2007-03-09 19:51:112楼 得分:0
那边收到abc
发表于:2007-03-09 19:51:523楼 得分:0
不太明白你的意思哈,试着理解一下:

第一个,如果你的msg[0]本意是个字符的话,那就不对,字符应该用单引号.看0x05比较像字符,才这么说.如果是字符串,那就没错.

第二个,报错确实是对的,你的msg声明为string[]数组,而string有tochararray,但是string数组没有.
针对第2个问题,假设你的msg本意上是一个string而不是string数组,那么你可以这么写:
string   msg   =   string.empty;
msg[0]   =   '0x05 ';
msg[1]   =   '0x01 ';
msg[2]   =   '0x02 ';
这样改了就没错了

针对第2个问题,假设你前面写的msg本意就是一个string数组,
那么后面getbytes方法就要修改一下了,要先把string数组连成一个string,然后用tochararray
发表于:2007-03-09 19:52:554楼 得分:0
哦,我明白你的意思了,

你就是 "假设你的msg本意上是一个string而不是string数组,那么你可以这么写: "这个意思了
发表于:2007-03-09 19:54:125楼 得分:0
汗...把我楼上当成lz了.....第二次发言不算...
发表于:2007-03-09 19:55:346楼 得分:100
第一个问题  
写法正确

第二个问题

转换的话得一项项转换:
bytee=system.text.encoding.bigendianunicode.getbytes(msg[0].tochararray());
发表于:2007-03-09 19:56:327楼 得分:0
msg[0]   =   "\x05 "
发表于:2007-03-09 19:59:218楼 得分:0
byte[]     msg=new   byte[3];
msg[0]   =   "0x05 ";
msg[1]   =   "0x01 ";
msg[2]   =   "0x02 ";
sock.send(msg,   0,   msg.length);
发表于:2007-03-09 20:05:059楼 得分:0
3q
发表于:2007-03-09 20:08:0510楼 得分:0
也同样谢谢   sunrobust(咸鱼---翻身理想不灭)

第一次来csdn   得分系统不太会用   看完你的回复学了不少东西   非常感谢


快速检索

最新资讯
热门点击