@@ -391,14 +391,20 @@ def get_diffs(self, fnames=None):
391391 try :
392392 if current_branch_has_commits :
393393 args = ["HEAD" , "--" ] + list (fnames )
394- diffs += self .repo .git .diff (* args )
394+ diffs += self .repo .git .diff (* args , stdout_as_string = False ).decode (
395+ self .io .encoding , "replace"
396+ )
395397 return diffs
396398
397399 wd_args = ["--" ] + list (fnames )
398400 index_args = ["--cached" ] + wd_args
399401
400- diffs += self .repo .git .diff (* index_args )
401- diffs += self .repo .git .diff (* wd_args )
402+ diffs += self .repo .git .diff (* index_args , stdout_as_string = False ).decode (
403+ self .io .encoding , "replace"
404+ )
405+ diffs += self .repo .git .diff (* wd_args , stdout_as_string = False ).decode (
406+ self .io .encoding , "replace"
407+ )
402408
403409 return diffs
404410 except ANY_GIT_ERROR as err :
@@ -412,7 +418,9 @@ def diff_commits(self, pretty, from_commit, to_commit):
412418 args += ["--color=never" ]
413419
414420 args += [from_commit , to_commit ]
415- diffs = self .repo .git .diff (* args )
421+ diffs = self .repo .git .diff (* args , stdout_as_string = False ).decode (
422+ self .io .encoding , "replace"
423+ )
416424
417425 return diffs
418426
0 commit comments