Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows UnicodeDecodeError:&x27;utf8';编解码器可以';t解码位置377826中的字节0x92:无效的开始字节_Windows_Git_Github_Encoding_Utf 8 - Fatal编程技术网

Windows UnicodeDecodeError:&x27;utf8';编解码器可以';t解码位置377826中的字节0x92:无效的开始字节

Windows UnicodeDecodeError:&x27;utf8';编解码器可以';t解码位置377826中的字节0x92:无效的开始字节,windows,git,github,encoding,utf-8,Windows,Git,Github,Encoding,Utf 8,我在repo.git.log()中执行下面的代码片段时,在第行(如果uID为uID)处遇到了以下错误:, 问题在于repo.git.log(),我已经研究了所有关于堆栈溢出的类似问题,建议使用decode(“utf-8”) 如何将repo.git.log()转换为解码(“utf-8”) 相关代码: .................. uID = gerritInfo['id'].decode("utf-8")

我在repo.git.log()中执行下面的代码片段时,在第
行(如果uID为uID)处遇到了以下错误:
, 问题在于
repo.git.log()
,我已经研究了所有关于堆栈溢出的类似问题,建议使用
decode(“utf-8”)

如何将
repo.git.log()
转换为
解码(“utf-8”)

相关代码:

..................
uID = gerritInfo['id'].decode("utf-8")                                            
if uID in repo.git.log():
        inwslist.append(gerritpatch)      
.....................


Traceback (most recent call last):
  File "/prj/host_script/script.py", line 1417, in <module>
    result=main()
  File "/prj/host_script/script.py", line 1028, in main
    if uID in repo.git.log():
  File "/usr/local/lib/python2.7/dist-packages/git/cmd.py", line 431, in <lambda>
    return lambda *args, **kwargs: self._call_process(name, *args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/git/cmd.py", line 802, in _call_process
    return self.execute(make_call(), **_kwargs)
  File "/usr/local/lib/python2.7/dist-packages/git/cmd.py", line 610, in execute
    stdout_value = stdout_value.decode(defenc)
  File "/usr/lib/python2.7/encodings/utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0x92 in position 377826: invalid start byte
。。。。。。。。。。。。。。。。。。
uID=gerritInfo['id'].解码(“utf-8”)
如果repo.git.log()中存在uID:
inwslist.append(gerritpatch)
.....................
回溯(最近一次呼叫最后一次):
文件“/prj/host_script/script.py”,第1417行,在
结果=main()
文件“/prj/host_script/script.py”,第1028行,主目录
如果repo.git.log()中存在uID:
文件“/usr/local/lib/python2.7/dist-packages/git/cmd.py”,第431行,在
返回lambda*args,**kwargs:self.\u调用\u进程(名称,*args,**kwargs)
文件“/usr/local/lib/python2.7/dist packages/git/cmd.py”,第802行,在调用过程中
返回self.execute(make_call(),**kwargs)
文件“/usr/local/lib/python2.7/dist-packages/git/cmd.py”,执行中的第610行
标准输出值=标准输出值。解码(防御)
文件“/usr/lib/python2.7/encodings/utf_8.py”,第16行,解码
返回编解码器.utf_8_解码(输入,错误,真)
UnicodeDecodeError:“utf8”编解码器无法解码位置377826中的字节0x92:无效的开始字节
0x92是Windows-1252的智能引用(')。它根本不存在于unicode中,因此无法解码


可能您的文件是由Windows计算机编辑的,这基本上导致了这个问题?

使用
encoding='cp1252'
可以解决这个问题。

什么Python模块提供了
repo.git.log()
调用?这是什么版本的Python?异常的完全回溯是什么?@MartijnPieters-它发生在Python2.7.3和Python2.7.5中,用完全回溯更新了问题。错误发生在
repo.git.log()
命令的内部,我想是因为
git
命令产生的输出不产生UTF-8。这可能是因为git日志包含非UTF-8数据,也可能是因为其他原因。我不知道哪个项目提供了
git
包。@MartijnPieters-我们可以做一些类似repo.git.log=repo.git.log(encode('utf-8'))的事情吗…或者去掉正确的单引号..语法是什么?你不能,不知道。我不知道运行了什么hit命令,也不知道什么会影响此处使用的编解码器。这也是我的问题,如何确保repo.git.log()具有正确的字符编码以消除此错误?Windows-1252中的0x92只是Unicode中代码点的一种编码。声明它在Unicode中不存在是。。不正确;在UTF8中,应将其编码为0xE2 0x80 0x99。如果这是关于编码为CP-1252的数据,那么这就意味着某个地方存在编码错误。这为我解决了这个问题!简单到用这种编码读取文件。
..................
uID = gerritInfo['id'].decode("utf-8")                                            
if uID in repo.git.log():
        inwslist.append(gerritpatch)      
.....................


Traceback (most recent call last):
  File "/prj/host_script/script.py", line 1417, in <module>
    result=main()
  File "/prj/host_script/script.py", line 1028, in main
    if uID in repo.git.log():
  File "/usr/local/lib/python2.7/dist-packages/git/cmd.py", line 431, in <lambda>
    return lambda *args, **kwargs: self._call_process(name, *args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/git/cmd.py", line 802, in _call_process
    return self.execute(make_call(), **_kwargs)
  File "/usr/local/lib/python2.7/dist-packages/git/cmd.py", line 610, in execute
    stdout_value = stdout_value.decode(defenc)
  File "/usr/lib/python2.7/encodings/utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0x92 in position 377826: invalid start byte