gpt4 book ai didi

c# - 从c#到Java接收字符串错误

转载 作者:行者123 更新时间:2023-12-02 07:54:14 24 4
gpt4 key购买 nike

我想将字符串从 C# 发送到 Jave我用 C# 在 2 侧这样做

发件人:C#

NetworkStream ns1 = _client2.GetStream();
byte[] b = { (byte)2 };//this is the command that sent from client to Server
ns1.Write(b, 0, 1);
string data = "222222222";
byte[] b2 = _AC.GetBytes(data);
ns1.Write(b2, 0, b2.Length);

接收器C#

 Byte[] b = new byte[10];
ns.Read(b, 0, b.Length);
string Data = _AE.GetString(b);

while (ns.DataAvailable)
{
b = new byte[10];
ns.Read(b, 0, b.Length);
Data += _AE.GetString(b);
}

我在 Java 中做了一些编码,但运气不佳......就像这样......

byte b = is.readByte();
byte[] buff= new byte[8];
is.read(buff,0,10);

我收到内部buff[50,50,50,50,50,50,50,50,50];.....那么如何在java中将其更改为字符串.....任何帮助都会很棒......谢谢

最佳答案

您应该指定字符串的编码!如果 c# 程序在具有不同于 java 应用程序的操作系统的另一台计算机上运行,​​您可能会遇到问题。 String(byte[])-Constructor 的 java-doc说:

Constructs a new String by decoding the specified array of bytes using the platform's default charset. ...

假设您指定 utf-8 字符串编码。您还应该确保 c# 也发送 utf-8 字符串:

byte[] utf8Bytes = System.Text.Encoding.UTF8.GetBytes(myString);

在 java 端,您应该将字节读取为 utf-8 字符串,如下所示:

String str = new String(buff, "UTF-8");

关于c# - 从c#到Java接收字符串错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9855149/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com