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. UI5-文档-1-前言

    主要是将SAP UI5官网文档做下了解,相关内容请查阅:https://sapui5.hana.ondemand.com/#/topic 设置您的开发环境并阅读我们的教程.它们使用交互式格式中的实际示 ...

  2. WP8.1 发送邮件

    Method 1: Windows.System.Launcher.LaunchUriAsync(new Uri("abc@outlook.com?subject=hello world&a ...

  3. vue - iview UI组件的col标签报错 x-invalid-end-tag

    https://blog.csdn.net/xiao199306/article/details/80430087

  4. delphi TEdit透明

    unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...

  5. 写一个singleton

    第一种:饱汉模式 public class SingleTon { private SingleTon(){ } //实例化放在静态代码块里可提高程序的执行效率,但也可能更占用空间 private f ...

  6. 【Java】JVM(四)、虚拟机参数配置

    1. -Xms20M      JVM启动时候的内存大小为20M   2. -Xmx20M     JVM内存最大值是20M 将其与Xms大小一致可以避免JVM内存自动扩展   3. -Xss128K ...

  7. xshell分隔符

    1.分隔符设置 \ :;`!@#$%^&()+|[]{}'",<>? 2.左键点击选中,右键点击复制

  8. 元素的定位tag_name,link_text,class_name

    tag_name 就是根据HTML的标签的名称来定位的: 案例:打开我要自学网,会有用户名和密码的输入框 例如:拿51zxw.net为例 from time import sleep #加载浏览器驱动 ...

  9. Required String parameter ' ' is not present

    Required String parameter ' ' is not present 报错原因: url中的参数错误. 解决方法: 1.修正url中的参数的值. 2.在Controller层中的@ ...

  10. 联想笔记本Win10 F1-F12失效的解决方法

    最近换了笔记本,用的是win10,发现F1到F12不生效. 比如玩游戏时,按F1没有切换到自己角色上,编程运行代码时的shift+F10也不行. 后来发现,这是因为某些笔记本的Fn功能键默认的不是传统 ...