【发布时间】:2019-05-09 18:10:46
【问题描述】:
当我尝试通过蓝牙从设备中检索一个值时,它以 ASCII 形式出现,作为一个空终止的大端值。设备软件是用C编写的。我想检索十进制值,即0代替48、1代替49、9代替57等。
@Throws(IOException::class)
fun receiveData(socket: BluetoothSocket ? ): Int {
val buffer = ByteArray(4)
val input = ByteArrayInputStream(buffer)
val inputStream = socket!!.inputStream
inputStream.read(buffer)
println("Value: " + input.read().toString()) // Value is 48 instead of 0, for example.
return input.read()
}
我怎样才能检索到我想要的值?
【问题讨论】:
-
这将肯定取决于用 C 编写的字符串的编码。
-
会的,但我使用了一个蓝牙聊天应用程序来接收信号,它确实接收到所有 5 个整数。我的申请只收到 1 个。我想我需要知道它是如何编码的才能对其进行解码......
标签: string kotlin character-encoding null-terminated