繁体   English   中英

Java 字符串结果与 C# 不同

[英]Java string results different to C#

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

C# 代码:

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

Java代码:

String text = new String(data);

One of the potential issues I encountered upon research was that C#'s default encoding was UTF-32 & Java's was UTF8 , as well as C# uses little endian and Java uses Big endian, so the solution would be to define charset in java as UTF-32LE但即便如此,它返回的结果与 完全不同,而且大多数(如果不是全部)字符串都是

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

由于 stream 中的字节使用某种编码进行编码,因此您必须在 C# 和 Java 代码中明确设置正确的编码。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM