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)转换结果是不一样的,擦考如下代码,与输出

  Serial.begin();
delay();
Serial.println("Ready!"); byte bdata=;
char cdata=(char)bdata; String sb=(String)bdata;
String sc=(String)cdata; Serial.println(sb.length());
Serial.println(sc.length());
Serial.println(sb.charAt(),DEC);
Serial.println((byte)sc.charAt(),DEC);

上面代码的输出

3
1
50, 247 -> "247", charAt(0)=“2” ,'2'的ASCII是50
247 ,char转换成String后将保留原值

另外
byte bArr[4]={0,1,1,0};

String t="";

for(int i=0;i<4;i++){

t +=(String) bArr[i];

}

Serial.println(t.length(),DEC);

结果为2,即字节数组里的0被忽略了

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

3.ardunio 中 byte 是0-255, char是-128到127

char c=-18;
byte t=(byte)c;
Serial.println(t,DEC);

将输出238,类似上面的问题1.

下面的是一组等价代码:

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();
mySerial.println(rStr);
}else{
rStr="$FEE-" + cmd +":" +msg +"$E";
mySerial.println("AT+CIPSEND=0," + (String)rStr.length());
delay();
mySerial.println(rStr);
} } //-------------------------
byte bs[];
long2byte(123456789UL,bs);
String msg= (String)((char)bs[]) +(String)((char)bs[]) +(String)((char)bs[]) +(String)((char)bs[]) ; 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");

java,arduino,C#之间的一些编码转换的更多相关文章

  1. Java用native2ascii命令做unicode编码转换

    背景:在做Java开发的时候,常常会出现一些乱码,或者无法正确识别或读取的文件,比如常见的validator验证用的消息资源(properties)文件就需要进行Unicode重新编码.原因是java ...

  2. Java和JavaScript之间的区别

    1.简介 通过优锐课核心java学习笔记中,我们可以看到,Java和JavaScript之间的区别.我们将在本文中比较Java语言和JavaScript语言.JavaScript由Netscape开发 ...

  3. 使用java进行文件编码转换

    在开发过程中,可能会遇到文件编码的转换,尽管说开发工具eclipse能够转换编码,可是有的情况却非常不方便.比方,原来文件本身的编码是GBK,如今要转换成UTF-8,假设直接在eclipse中把文件编 ...

  4. 使用JAXB来实现Java合xml之间的转换

    使用jaxb操作Java与xml之间的转换非常简单,看个例子就明白了. //javaBean-->xml @Test public void test1() { try { JAXBContex ...

  5. 完整的java字符串编码转换代码

    package book.String; import java.io.UnsupportedEncodingException; /** *//** * 转换字符串的编码 * @author joe ...

  6. JAVA字符串编码转换常用类

    无论是对程序的本地化还是国际化,都会涉及到字符编码的转换的问题.尤其在web应用中常常需要处理中文字符,这时就需要进行字符串的编码转换,将字符串编码转换为GBK或者GB2312.一.关键技术点:    ...

  7. java与xml之间的转换(jaxb)

    使用java提供的JAXB来实现java到xml之间的转换,先创建两个持久化的类(Student和Classroom): Classroom: package com.model; public cl ...

  8. java字符串应用之字符串编码转换

    [转载]原文地址:https://blog.csdn.net/zhouyong80/article/details/1900100 无论是对程序的本地化还是国际化,都会涉及到字符编码的转换的问题.尤其 ...

  9. java字符编码转换

    在开发的过程中.字符编码经常令我们头痛.经常会出现各种各样的乱码.以下就介绍java的编码转换和常见的乱码是使用什么样的编码去读取的: 先看一张图片: watermark/2/text/aHR0cDo ...

随机推荐

  1. 亿图eddx与visio转换

    Visio支持的格式 AutoCAD 绘图文件格式 (.dwg..dxf) 压缩增强型图元文件 (.emz) 增强型图元文件 (.emf) 可交换图像文件格式 (GIF) JPEG 文件交换格式 (. ...

  2. J2SE 8的集合

    List ArrayList查询效率高LinkedList插入删除效率高 ArrayList ArrayList<String> arrayList = new ArrayList< ...

  3. License 校验

    1:了解keytool 的一些命令  http://www.micmiu.com/lang/java/keytool-start-guide/ 本人在github找的一个demo:https://gi ...

  4. 4 python 类的专有方法介绍

    1.__init__ : 构造函数,在生成对象时调用  该方法是在对象产生之后才会执行,只用来为对象进行初始化操作,可以有任意代码,但不一定有返回值. 所谓初始化构造函数就是在构造对象的同时被对象自动 ...

  5. ABAP-ITS Mobile

    ITS Mobile是14年开发EWM项目时用到的技术方案,本文主要记录下ITS Mobile的整个实现过程. 1.ITS Mobile介绍 ITS Mobile:Internet Transacti ...

  6. vue深入了解组件——自定义事件

    一.事件名 跟组件和prop不同,事件名不存在任何自动化的大小写转换.而是触发的事件名需要完全匹配监听这个事件所用的名称.举个例子,如果重复啊一个camelCase名字的事件: this.$emit( ...

  7. box2d 易错

    1.动态刚体与一个与静态刚体重叠的小的感应刚体在contactBegin时,有些时候无法侦测到 2.bodyA.GetContactList()应用非动态刚体,会找不到另一非动态刚体的接触,非动态刚体 ...

  8. Spring的国际化(转载)

    1:在MyEclipse下面创建一个test的Web  Project,然后添加Spring相关的文件,在src根目录下创建applicationContext.xml文件. applicationC ...

  9. OpenCv 人脸识别 基础

    #include <opencv2\opencv.hpp> #include <iostream> using namespace std; int main() { // 摄 ...

  10. ArcGIS 复制要素

    DataManagementTools.General.Copy DataManagementTools.Features.CopyFeatures ConversionTools.ToGeodata ...