1. 程式人生 > 程式設計 >python 淺談serial與stm32通訊的編碼問題

python 淺談serial與stm32通訊的編碼問題

參考連結:

decode錯誤處理方案

可選用的編碼

使用環境:

ubuntu18.04

python3.65

問題點:

使用pyserial與stm32通訊,使用如下形式的編碼進行write

 (input_s + '\r\n').encode('utf-8')

但是在接受stm的資訊的時候使用'utf-8'解碼會出現亂碼問題

在查了可用編碼後,發現可能是中文無法解碼的問題,使用'gbk'--統一漢語進行解碼,可以解決亂碼問題。

utf-8雖然是通用語言編碼標準,但中文出現亂碼可以使用有針對性的'gbk'進行解碼。

除此之外,python官方也有一種解決辦法:

bytearray.decode(encoding="utf-8",errors="strict")

返回從給定 bytes 解碼出來的字串。 預設編碼為'utf-8'。 可以給出errors來設定不同的錯誤處理方案。errors的預設值為'strict',表示編碼錯誤會引發UnicodeError。 其他可用的值為'ignore','replace'以及任何其他通過codecs.register_error()註冊的名稱,請參閱錯誤處理方案小節。 要檢視可用的編碼列表,請參閱標準編碼小節。

我們可以看到把errors關鍵字設定為ignore也可以解決編碼問題。

以上這篇python 淺談serial與stm32通訊的編碼問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。