来自网络连续剧 api 的数据出现乱码
Data coming from web serial api is garbled
使用网络序列从天平检索数据时 api。我得到以下内容
SԬ-000��.96���
我什么时候应该得到
ST,-00027.96 g
我正在使用以下内容打开端口
await port.open({ baudRate: 2400, databits: 7, stopbits: 1, parity: "none", flowControl: "none"});
并读取数据
const readerData = await this.reader.read();
var datavalue = (new TextDecoder("utf-8")).decode(readerData.value);
如有任何帮助,我们将不胜感激。
我很确定它曾经有效(尽管我可能是错的)。当然 api 最近更改了参数 baudrate 为 baudRate 所以不确定是否同时更改了其他内容。
这不是经过测试的答案,因为我无法读取有实际数据传入的串口。
但是,看读对的字符和读错的字符是一致的。
读取正确的不会设置奇偶校验位(应该有),读取错误的会设置奇偶校验位。
例如:
ASCII 中的小写 g 是八进制 147 - 二进制中的 01100111 - 奇数位集
ASCII 中的大写 S 是八进制 123 - 二进制中的 01010011 - 偶数位设置
因此怀疑正在使用不同的字符编码,特别是因为似乎合并了 T 和 , 来给出一个字符。
那么,现在是否在串行设备上设置了奇偶校验,但在读取字符时没有考虑?是否正在寻找某种 16 位编码或...
抱歉,我无法进一步调查。至少尝试读取设置了奇偶校验位而不是不作为启动器。
所以我错过了 api 的其他更改。
databits 和 stopbits 也改变了它们的 capitalisation。
它们现在是 dataBits 和 stopBits。
使用网络序列从天平检索数据时 api。我得到以下内容
SԬ-000��.96���
我什么时候应该得到
ST,-00027.96 g
我正在使用以下内容打开端口
await port.open({ baudRate: 2400, databits: 7, stopbits: 1, parity: "none", flowControl: "none"});
并读取数据
const readerData = await this.reader.read();
var datavalue = (new TextDecoder("utf-8")).decode(readerData.value);
如有任何帮助,我们将不胜感激。
我很确定它曾经有效(尽管我可能是错的)。当然 api 最近更改了参数 baudrate 为 baudRate 所以不确定是否同时更改了其他内容。
这不是经过测试的答案,因为我无法读取有实际数据传入的串口。
但是,看读对的字符和读错的字符是一致的。
读取正确的不会设置奇偶校验位(应该有),读取错误的会设置奇偶校验位。
例如: ASCII 中的小写 g 是八进制 147 - 二进制中的 01100111 - 奇数位集 ASCII 中的大写 S 是八进制 123 - 二进制中的 01010011 - 偶数位设置
因此怀疑正在使用不同的字符编码,特别是因为似乎合并了 T 和 , 来给出一个字符。
那么,现在是否在串行设备上设置了奇偶校验,但在读取字符时没有考虑?是否正在寻找某种 16 位编码或...
抱歉,我无法进一步调查。至少尝试读取设置了奇偶校验位而不是不作为启动器。
所以我错过了 api 的其他更改。
databits 和 stopbits 也改变了它们的 capitalisation。 它们现在是 dataBits 和 stopBits。