java与c#通信数据转换问题
来源:互联网 发布:php多文件上传原理 编辑:程序博客网 时间:2024/05/21 06:38
//由于JAVA语言的数据类型都是有符号类型,而C# C++一般数据类型都是分有符号和无符号,
//因此在通信过程中传递的Byte[]无法直接转换成C#需要的类型,
//以前倒是没注意这些细节,因为一般用一种语言编程,
//大都有内置的转换方法。跨语言环境的转换就的自己动手想办法了。
1、java的Byte[]转换成c#的Int32
private int CoverJavaByteToInt(byte[] bytes){
char[] chars = Encoding.ASCII.GetChars(bytes);
int r = 0;
r |= (((int)(chars[0])) & 0xff) << 24;
r |= (((int)(chars[1])) & 0xff) << 16;
r |= (((int)(chars[2])) & 0xff) << 8;
r |= (((int)(chars[3])) & 0xff);
return r;
}
2、java的Byte[]转成c#的unshort
private ushort CoverJavaByteToUnshort(byte[] bytes){
ushort r = 0;
char[] chars=Encoding.ASCII.GetChars(bytes);
r |= (ushort)((chars[0] & 0xff) << 8);
r |= (ushort)(chars[1] & 0xff) ;
return r;
}
此代码会出现错误在某些情况,大致原因是因为转换char时值遭到改变,应该是表示范围问题导致
private ushort CoverJavaByteToUnshort(byte[] bytes){
ushort r = 0;
r |= (ushort)((bytes[0] & 0xff) << 8);
r |= (ushort)(bytes[1] & 0xff);
return r;
}
此代码目前测试没问题了,如果谁遇到特殊情况 请与我联系
3、java的Byte[]转成c#的string
(注意:我这个函数是根据我工作需要写的因为可能存在多个string或其他数据类型在整个数据流中,如你接收的数据流就是字符串,完全可以没这么麻烦,请自行修改)///
/// 转换Byte[]到String 默认采用UTF-8///
/// 数据流的BYTE数组/// 最终转换结果字符串
/// String的在数据流中的起始位置
/// 下一个数据类型在数据流中的起始位置
private int CoverJavaByteToString(byte[] bytes,ref string str,int indexStart){
byte[] uidLen = new byte[2];
Array.Copy(bytes,indexStart, uidLen, 0, 2);
ushort len = CoverJavaByteToUnshort(uidLen);
str = Encoding.UTF8.GetString(bytes,2+indexStart, len);
return str.Length+2+indexStart;
}
- java与c#通信数据转换问题
- java与c#通信数据转换问题
- #java与c#通信
- Java与C/C++网络通信时的数据转换
- C++与C#数据转换
- Java基本类型转byte[],java与c通信数据转换
- Java基本类型转byte[],java与c通信数据转换
- Java基本类型转byte[],java与c通信数据转换
- C#哈希表数据与文本数据转换
- easyui 与 java 通信问题
- Java与C#时间转换
- Java与C#时间转换
- C#调用m,atlab数据转换问题
- json与java数据转换
- c#与java通过socket通信
- C#与java利用XML进行通信
- android/java 与 c#进行socket通信
- 使用protobuf进行C#与Java通信
- 怎样才能进入“柔性制造”设备的大门?
- checkbox全选JS方法
- C++比较经典的几个宏
- python 3.x中列表排序问题,从python2.x过渡到python3.x
- 大学大学
- java与c#通信数据转换问题
- 【转】自己开发的iphone app打包为IPA包的方法
- 一篇演讲 By 浙江大学数学系主任刘克峰
- IConfigurationSectionHandler的线程安全性问题
- wcst learning to learn score
- Ubuntu中文输入法和中文界面 && Ubuntu加载光驱 && Ubuntu加载U盘 && Ubuntu自动关机
- WINCE下调试驱动的一般方法
- Japanese Input Check
- 谈谈个人对软件开发的看法