2016-07-13 28 views
2

Ich versuche Gerrit UID zu utf-8 zu codieren und läuft in den unteren Fehler, es funktioniert die meiste Zeit, aber zufällig in unteren Fehler läuft Für einige UIDs habe ich ähnliche Posts auf stackoverflow angeschaut, die darauf hindeuten, dass ISO-8859-1 erstellt wird, aber utf-8 funktioniert die meiste Zeit für mich, wie kann ich das beheben?UnicodeDecodeError: 'utf8' Codec kann Byte 0xf6 in Position 178175077 nicht dekodieren: ungültiges Startbyte

uid = Ia7324f6443b3db5d55113a221dc0791bb5a38799 
uID = gerritInfo['id'].encode("utf-8") 

Fehler-Stack: -

result=main() 
    File "/prj/team/location/script", line 1363, in main 
    (picked_gerrit,uID,email_state) = cherrypick_gerrit(buildDir,manifest,gerrit,patch,False,errorLog,picklogfd) 
    File "/prj/team/location/script", line 356, in cherrypick_gerrit 
    if uID in repo.git.log(): 
    File "/usr/local/lib/python2.7/dist-packages/git/cmd.py", line 450, in <lambda> 
    return lambda *args, **kwargs: self._call_process(name, *args, **kwargs) 
    File "/usr/local/lib/python2.7/dist-packages/git/cmd.py", line 902, in _call_process 
    return self.execute(make_call(), **_kwargs) 
    File "/usr/local/lib/python2.7/dist-packages/git/cmd.py", line 698, 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 0xf6 in position 178175077: invalid start byte 
+0

Die Stacktrace nicht auf die Codezeilen zusammenhängt Sie auf dem Laufenden. –

+0

Warum sagst du das? es ist bei 'uID in repo.git.log() fehlgeschlagen: '' repo.git.log() 'ist ein Python-Modul' http: // gitpython.readthedocs.io/de/stable/tutorial.html' und ich lieferte ein Beispiel für eine uID, die fehlschlägt –

+0

Die Stack-Trace zeigt einen *** Decoding *** Fehler an. 0xf6 ist nicht als Standalone-Byte oder Start eines Multi-Byte-Zeichens gültig. Zeigen Sie uns/prj/Team/Lage/script um die Linie 1363. –

Antwort

-1

# coding=utf-8 zur ersten Zeile der Python-Datei.

+0

Jerry - wie hilft das? Ich mache bereits 'uID = gerritInfo ['id']. Encode (" utf-8 ")' –

+0

execute print (gerritInfo ['id']) was ist das Ergebnis – sadfaf

+0

'Ia7324f6443b3db5d55113a221dc0791bb5a38799' ist das Ergebnis, erwartest du zu siehst du irgendwelche Sonderzeichen? –