gpt4 book ai didi

java - 如何从二进制流中消除不需要的符号

转载 作者:行者123 更新时间:2023-12-01 10:54:30 25 4
gpt4 key购买 nike

我正在通过 RFCOMM 套接字读取二进制数据流。我收到的数据保存在一个字节[]中。然后使用 new String(buff) 将其转换为可读格式。

举个例子:

byte[] buffer = new byte[64]
readableData = new String(buffer);

但是转换为可读格式后我收到的内容是平滑的,如下所示,末尾有奇怪的字符“带问号的”:

/CSPPCtrl: -->[rx()]-> bytes count: 57
11-13 16:27:37.421 9543-10346/com.example.com.bt_11 I/CSPPCtrl: -->[rx()]->
data in the buffer: S1,2829.22,3,4.65,0,0,0,0,0,0,0,0,0,69.2,25,1,0,0,0,0,0
11-13 16:27:37.421 9543-10346/com.example.com.bt_11 I/CSPPCtrl:

请告诉我消除这些符号的推荐方法是什么?

最佳答案

您使用了错误的String构造函数。您应该使用String(byte[] bytes, int offset, int length, Charset charset) .

原因是您只收到了 57 个字节,但数组是 64 个字节,因此您指定 offset 为 0,length 为 57。

您还应该指定字符集,因此它不依赖于 JVM 默认值,因为它可能会发生变化。

因此,它应该是这样的:

readableData = new String(buffer, 0, buflen, "US-ASCII");

关于java - 如何从二进制流中消除不需要的符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33696306/

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