这里有问题。我从硬件接收数据为HEX号码。我使用它将它们变成字符串(它是预期的):
arr.push(data.charCodeAt(0).toString(16))
效果很好。例如,我收到0x00,这段代码正确地添加了一个' 0'字符串到数组。
但是有一个问题。 JS自动将这些代码理解为符号。当我尝试0xAA或0x80时,我收到了FFFD。我认为。这意味着utf-8中没有这样的符号。
如何让js将我的数据理解为十六进制数,而不是符号代码?
编辑:我发现我的问题是我使用从硬件收到数据的库的错误方法。
答案 0 :(得分:0)
只需convert the Hex number to decimal
yourNumber = parseInt(hexString, 16);
答案 1 :(得分:0)
要将十六进制转换为十进制,您可以使用下一个函数:
parseInt(hexValue, 16)
希望这会有所帮助:)
data = '0XAA'
data1 = '0X80'
console.log( parseInt(data, 16))
console.log( parseInt(data1, 16))

答案 2 :(得分:0)
好的,我发现我的问题出现在我用来接收数据的库中