Python:在ISO 8859-1中写入COM

Python:在ISO 8859-1中写入COM,python,serial-port,pyserial,iso,non-ascii-characters,Python,Serial Port,Pyserial,Iso,Non Ascii Characters,我需要使用HART协议写入COM端口。 我需要在端口中写入的字是ISO 8859-1格式。 我尝试使用pyvisa,但我得到了一个错误(对于像这样的字符:ÿÿÿÿ)。。。我认为这是因为它们不是标准的ASCII码。 我现在能做什么?我应该在COM端口上再写一个包吗 有什么建议吗?如果使用pyserial,可以使用“Latin1”编码而不是标准的“UTF-8”。RX看起来像: inpchar = comXX.read().decode("Latin1",'ignore') Text = "-273

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


有什么建议吗?

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

inpchar = comXX.read().decode("Latin1",'ignore')
Text = "-273\xb0C\n" ## will print "-273°C\n"
comXX.write(Text.encode("Latin1"))
TX看起来像:

inpchar = comXX.read().decode("Latin1",'ignore')
Text = "-273\xb0C\n" ## will print "-273°C\n"
comXX.write(Text.encode("Latin1"))
这在PySerial3.x上有效,但不确定2.x是否有效。(更新)我刚刚在我的构建机器上运行了这个,在Python3.4上打印失败,但在Python3.6.2上可以工作。read()解码似乎工作正常,但打印失败。。。我修改了Python3.4并将其放在3.6.2中,新下载的pyserial运行良好。重新安装3.6.2和pyserial 3.4可以正常工作