【发布时间】:2017-10-25 20:21:20
【问题描述】:
我想转换从 C 发出的字符串,并在 Java 中将其作为字符串值接收。
这是我在 C 中发送字符串的代码。
strcpy(buffer,"hello");
send(clientSocket,buffer,4096,0);
还有我在 Java 中接收字符串的代码。
BufferedReader in = new BufferedReader(new InputStreamReader(LoginActivity.getSocket().getInputStream()));
String str = in.readLine();
但是,当我敬酒时,str 值以奇怪的符号出现。我该如何解决这个问题?
【问题讨论】:
-
send(clientSocket,buffer,4096,0);--->send(clientSocket,buffer,strlen(buffer)+1,0); -
加上
\n。然后是两边的charset编码。 -
@JoopEggen 我愿意,“你好\n”?
-
是的,还有
new InputStreamReader(..., StandardCharsets.UTF_8)或其他东西(US_ASCII)。并且长度为 5+1; strlen. -
@JoopEggen 好的,请注意!谢谢!
标签: java android c string sockets