C#向java发送utf-8编码的文件会出现多余字符

C#中 EzoneStream.Read(data, 0, data.Length);这里数组data的size为1024
java中,inputByte的size也是1024
while ((length = dis.read(inputByte, 0, inputByte.length)) > 0) {
fos.write(inputByte, 0, length);
fos.flush();
}

出现的问题是,java接受的包会在前面加上0x00 0x04 0x00 0x00这四个字节。请问是怎么回事?

一般TCP都会自己组包(封装数据包的格式,每一段是什么数据),通常前面是这一包的数据长度,便于读取长度后,判断后续数据是否完整。
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-07-14
这个是数据包头吧!!你看看别人的包是怎么组的!!

C#向java发送utf-8编码的文件会出现多余字符
一般TCP都会自己组包(封装数据包的格式,每一段是什么数据),通常前面是这一包的数据长度,便于读取长度后,判断后续数据是否完整。

用C#.NET调用Java开发的WebService传递ntext类型出现乱码
两边的编码肯定要用utf-8 发送数据方要用 UrlEncode编码,如果是客户端,使用 escape函数 接受数据方使用 HttpUtility.UrlDecode解码

C#加密Java解密
一个是C#采用CBC Mode,PKCS7 Padding,Java采用CBC Mode,PKCS5Padding Padding,另一个是C#采用ECB Mode,PKCS7 Padding,Java采用ECB Mode,PKCS5Padding Padding,Java的ECB模式不需要IV 对字符加密时,双方采用的都是UTF-8编码 C# 代码 \/\/\/ \/\/\/ DES3加密解密 \/\/\/ public class Des3 { regio...

易语言飞扬字符和编码
在处理易语言飞扬字符时,文件的存储格式至关重要。推荐使用统一的 Unicode 格式,如 UTF-8、UCS-2 或 UCS-4,这种编码方式能够支持丰富的字符集,包括各种语言的字符。文件应保持为纯文本形式,以便于处理和解析。对于英文字符,务必注意大小写的区别,因为英文字母在编程中具有特定含义,大小写的差异可...

java程序调用C#的WebService中文显示问号的问题
首先你要了解,你的WEBSERVICE返回的内容,是何种字符集的,统一强制转换UTF-8。然后在JAVA程序里也一样,统一,只要统一字符集,就不会导致乱码。

读取网页源码时出现乱码,求解决方案
我只能 这么说 乱码的问题 很好解决 (不管是什么时候,什么应用)。准备好各种编码之前的转换函数。然后 根据http返回的信息得到 内容的编码。然后转换成unicode或者ansi的,然后输出。注意 unicode和 ansi之前也有可能导致乱码,看你想要显示什么。显示unicode就将ansi转一下,反之亦然 ...

js向C#后台传值结果汉子有乱码怎么办啊?
在页面把字符集定义好:<%@ page language="java" contentType="text\/html; charset=utf-8"pageEncoding="utf-8"%> 在后台转也行:string tmp1 = System.Web.HttpUtility.UrlEncode(".net技术", System.Text.Encoding.GetEncoding("GB2312"));string tmp2 = System.Web.HttpUtility.UrlEncode("...

立即停止使用 setdefaultencoding,以及为什么
而一旦我们将 defaultencoding 设置为 utf-8,因为 utf-8 的字符范围是完全覆盖 latin-1,因此,会直接使用 utf-8 进行解码。c5 ae 在 utf-8 中,是 Æ。于是我们打印出了完全不同的字符。可能你们会说我们不会写这样的代码。如果我们写了也会做修正。但如果是第三方库这么写了呢?项目...

java中如何将UTF-8编码的字符串使用GB18030输出?
java 很方便进行这种转换如果输入是UTF8的字节用String s=new String(utf8_bytes, "UTF-8"); \/\/utf8_bytes为byte[]类型如果输入是字符串,直接String s=原返回。 在输出是转换gb18030,不输出时不用转换。os.write(s.getBytes("GB18030")); \/\/os为输出流 追问 PrintWriter os=new PrintWriter(new FileOutp...

VS2010默认使用 Unicode 字符集,那Java也是Unicode 字符集,char或是中...
首先java中的中文字符不一定占两个字节,这主要取决于使用哪种编码,针对Unicode字符集来说,常用中文使用UTF-8编码为3个字节,此时调用toCharArray()方法可知为1个字符,使用UTF-16编码为2个字节,此时调用toCharArray()方法可知也为1个字符。为什么3个字节java也会识别为1个char(字符)呢。那是因为java...

相似回答