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. Yii常用变量

    调用YII框架中 jquery:Yii::app()->clientScript->registerCoreScript('jquery'); 调用YII框架中 jquery:Yii::a ...

  2. 前端-CSS-11-Z-index

    ---- z-index 这个东西非常简单,它有四大特性,每个特性你记住了,页面布局就不会出现找不到盒子的情况. z-index 值表示谁压着谁,数值大的压盖住数值小的, 只有定位了的元素,才能有z- ...

  3. ABAP-Generate subroutine

    1.定义 data:zprog like abapsource occurs with header line, prog() type c, msg() type c. 2.动态语句 zprog-l ...

  4. 一个简单例子弄懂什么是javascript函数劫持

    javascript函数劫持很简单,一般情况下,只要在目标函数触发之前,重写这个函数即可. 比如,劫持eval函数的代码如下: var _eval=eval; eval=function(x){ if ...

  5. git命令图片

  6. .net数据库连接防注入参数查询 命令执行 读取 备份 导出导入转化XML格式

    ADO.NET是一组类库,让我们通过程序的方式访问数据库.SYSTEM.DATA这个类提供了统一的接口访问Oracle MSSQL Access.像SYSTEM.IO类操作文件一样. **connec ...

  7. JS中数组的创建方法

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  8. 吴裕雄 python神经网络 水果图片识别(1)

    import osimport numpy as npimport matplotlib.pyplot as pltfrom skimage import color,data,transform,i ...

  9. How to create a Virtual Machine in SmartOS

    在SmartOS中,使用vmadm创建工具创建虚拟机. 此工具需要一个JSON有效负载,并使用输入JSON中指定的属性创建“kvm”或“joyent” brand zone. 正常输出是一系列单行JS ...

  10. DEXSeq

    1)Introduction DEXSeq是一种在多个比较RNA-seq实验中,检验差异外显子使用情况的方法. 通过差异外显子使用(DEU),我们指的是由实验条件引起的外显子相对使用的变化. 外显子的 ...