Klipper字符编码报错处理方案 ‘ascii’ codec can’t decode byte 0xe6 in position…
某次klipper版本更新重启后,提示报错
Internal error during connect: ‘ascii’ codec can’t decode byte 0xe6 in position 23: ordinal not in range(128)
查询后初步判断报错信息是因为:python2.x的默认编码是ascii,而代码中可能存在utf-8的字符
然后下载日志klippy.log,查找具体报错文件位置,果然python版本是2.7
然后找到服务器上对应文件进行修改:
找到 import sys 位置
import sys
在其下方添加代码指定编码格式为utf8
reload(sys)
sys.setdefaultencoding('utf8')
结果如图:
最后重启服务器即可
(另外理论上可更新python版本至3.7+解决该问题,可自行尝试)