0
回答
jenkins python api获取控制台输出含中文时报错
华为云实践训练营,热门技术免费实践!>>>   

在使用python-jenkins调用jenkins api获取控制台输出的时候,如果输出中含中文,会报错:

File "/usr/lib/python2.6/site-packages/jenkins/__init__.py", line 1336, in get_build_console_output
    self._build_url(BUILD_CONSOLE_OUTPUT, locals())
  File "/usr/lib/python2.6/site-packages/jenkins/__init__.py", line 436, in jenkins_open
    return response.decode('utf-8')
  File "/usr/lib64/python2.6/encodings/utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xb4 in position 372968: invalid start byte

具体使用的是python-jenkins模块的get_build_console_output这个方法,需要说明的是我已经在代码文件的开头指定#coding:utf-8,且加上了

import sys

reload(sys)

sys.setdefaultencoding('utf-8')

,并且也将服务器的默认编码改为了utf-8,具体做法是在python安装目录site-packages下新建sitecustomize.py,里面写入和上面一样的内容,

但是在获取含中文的控制台输出的时候仍然报相同的错误,也试过将/usr/lib/python2.6/site-packages/jenkins/__init__.py这里response.decode('utf-8')改为用gbk或gb2312,还是不行

举报
水枪
发帖于4个月前 0回/83阅
顶部