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)转换结果是不一样的,擦考如下代码,与输出
View Code
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
相关文章推荐
- iOS之UI高级---如何理解图文混排
- String、StringBuffer与StringBuilder之间区别
- js-QuickStart-base.js
- ios UIScrollView不能响应TouchesBegin:的事件的解决办法
- Codeforces Testing Round #12C - Subsequences (dp+树状数组优化)
- break语句和continue语句
- 使用uiautomator时遇到问题的处理方法
- easyui ComboBox 中文检索问题
- Range Sum Query 2D - Immutable
- iOSUI调试工具------Reveal
- UIAlertController
- CYC-UITableViewCell的动态高度
- UIScrollView 的subViews的问题
- 让UITableView的section header view不悬停的方法
- ant <copy文件忽略目录结构flatten="true"
- Django中request和response中的属性方法详述
- UIView 控件
- Mac下安装使用apktool,jd-gui进行反编译
- karma+requirejs+angular 测试
- Bluemix 动手系列 (二) 通过命令行部署和更新云应用