Python:写入 ISO 8859-1 中的 COM

Python : write to COM in ISO 8859-1

我需要使用 HART 协议写入 COM 端口。 我需要在端口中写入的文字是 ISO 8859-1 格式。 我尝试使用 pyvisa,但出现错误(对于像这样的字符:ÿÿÿÿÿ)...我认为是因为它们不是标准的 ASCII。 我现在能做什么?我应该去另一个包写入 COM 端口吗?

有什么建议吗?

如果你使用 pyserial,你可以使用 "Latin1" 编码而不是标准的 "UTF-8"。 RX 看起来像:

inpchar = comXX.read().decode("Latin1",'ignore')

TX 看起来像:

Text = "-273\xb0C\n" ## will print "-273°C\n"
comXX.write(Text.encode("Latin1"))

这适用于 pyserial 3.x,不确定 2.x。 (更新)我只是在我的构建机器上 运行 这个,在 python 3.4 上打印失败,但在 python 3.6.2 上工作。 read() 解码似乎工作正常,但打印失败...我核对 python 3.4 并放入 3.6.2,并且重新下载 pyserial,工作正常。全新安装 3.6.2 和 pyserial 3.4 即可。