【发布时间】:2017-08-28 07:21:43
【问题描述】:
我需要使用 HART 协议写入 COM 端口。 我需要在端口中写入的单词是 ISO 8859-1 格式。 我尝试使用 pyvisa,但出现错误(对于这些字符:ÿÿÿÿÿ)...我认为是因为它们不是标准的 ASCII。 我现在能做什么?我应该去找另一个包在 COM 端口上写吗?
有什么建议吗?
【问题讨论】:
标签: python serial-port pyserial iso non-ascii-characters
我需要使用 HART 协议写入 COM 端口。 我需要在端口中写入的单词是 ISO 8859-1 格式。 我尝试使用 pyvisa,但出现错误(对于这些字符:ÿÿÿÿÿ)...我认为是因为它们不是标准的 ASCII。 我现在能做什么?我应该去找另一个包在 COM 端口上写吗?
有什么建议吗?
【问题讨论】:
标签: python serial-port pyserial iso non-ascii-characters
如果您使用 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 即可。
【讨论】: