有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java字符串结果与C不同#

我正在读取socket流,并将字节数组转换为Java和amp;C#,但结果不同

C#代码:

string text = Encoding.Default.GetString(ms.ToArray());

Java代码:

String text = new String(data);

我在研究中遇到的一个潜在问题是C#的默认编码是UTF-32&;Java的wasUTF8,以及C#使用小尾端,Java使用大尾端,因此解决方案是在Java中将字符集定义为UTF-32LE,但即使如此,它返回的结果也与C#完全不同,并且大多数(如果不是全部的话)字符串都是的组合

正如关于Java中方法的额外信息一样,我使用ByteArrayOutputStream存储来自DataInputStream的数据&;在C#中,我使用MemoryStream存储来自NetworkStream的数据


共 (1) 个答案

  1. # 1 楼答案

    由于流中的字节是使用某种编码进行编码的,因此必须在C#和Java代码中显式设置正确的编码

    它们使用不同的默认编码

    为了使字节流具有互操作性,您必须坚持使用一种用于将字符串编码为字节的编码。或者在流中的某个地方交换编码类型