Java 字符串结果与 C# 不同



我正在读取套接字流并将字节数组转换为Java和C#中的单个字符串,但结果不同...

C# 代码:

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

爪哇代码:

String text = new String(data);

我在研究时遇到的潜在问题之一是 C# 的默认编码是UTF-32和 Java 的默认编码是UTF8,以及 C# 使用小端序,Java 使用大端序,所以解决方案是在 java 中将字符集定义为UTF-32LE但即便如此,它返回的与 C# 完全不同,大多数(如果不是全部(字符串都是的组合

就像我在 Java 中的方法的额外信息一样,我正在使用ByteArrayOutputStream来存储来自DataInputStream的数据,而在 C# 中,我正在使用MemoryStream来存储来自NetworkStream的数据

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

它们使用不同的默认编码。

要使字节流可互操作,必须坚持使用一种用于将字符串编码为字节的编码。或者在流中的某个位置交换编码类型。

相关内容

  • 没有找到相关文章

最新更新