完美解決pyserial報"UnicodeEncoudeError"的問題

        通過Python調用電腦的串口,在pyserial已經正確安裝的情況下,通過“python -m serial.tools.list_ports -v”命令列出電腦所有的串口,結果顯示如下:

        通過上網搜索資料得知,這是因爲Python默認調用ASCII編碼解碼程序去處理字符流,當字符流不屬於ASCII範圍內時,就會拋出異常(ordinal not in range(128))。解決方法如下:

找到Python安裝目錄下的“\Python27\Lib”這個路徑,找到“site.py”這個文件。用文本編輯器打開他,找到如下的一行:

    if 0:
        # Enable to support locale aware default string encodings.
        import locale
        loc = locale.getdefaultlocale()
        if loc[1]:
            encoding = loc[1]

把這裏的“if 0”改成“if 1”,然後重新打開命令行窗口,再運行上述的那條命令,就正常了:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章