您的位置:首页 > 产品设计 > UI/UE

java,arduino,C#之间的一些编码转换

2015-11-12 16:20 543 查看
1.C#-> Encoding.UTF8.GetBytes( "abc中") ->[97,98,99,228,184,173]

java->byte[] bs= "abc中".getBytes("Utf-8");[97,98,99,-28,-72,-83]

因为 java里的byte是 -128 到 127 ,所以java中的字节数组为负 -28的原码表示跟228是一样的(二进制)

//-----------------------------------------------------------

2.在ardunio针对char,跟 byte做(String)转换结果是不一样的,擦考如下代码,与输出

void reply(bool isOk,String cmd,String msg){
String rStr="";
if(isOk){
rStr="$FOK-" + cmd +":" +msg +"$E";
mySerial.println("AT+CIPSEND=0," + (String)rStr.length());
delay(10);
mySerial.println(rStr);
}else{
rStr="$FEE-" + cmd +":" +msg +"$E";
mySerial.println("AT+CIPSEND=0," + (String)rStr.length());
delay(10);
mySerial.println(rStr);
}

}

//-------------------------
byte bs[4];
long2byte(123456789UL,bs);
String msg= (String)((char)bs[0]) +(String)((char)bs[1]) +(String)((char)bs[2]) +(String)((char)bs[3]) ;

reply(true,"HB",msg);

//      String rpStr="$FOK-HB:1234$E";
//      mySerial.println("AT+CIPSEND=0," + (String)rpStr.length());
//      delay(10);
//      mySerial.print("$FOK-HB:");
//      mySerial.write(bs[0]);
//      mySerial.write(bs[1]);
//      mySerial.write(bs[2]);
//      mySerial.write(bs[3]);
//      mySerial.println("$E");


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: