diff --git a/lib/git/diff.rb b/lib/git/diff.rb index 19da0e92..ff819be0 100644 --- a/lib/git/diff.rb +++ b/lib/git/diff.rb @@ -127,10 +127,11 @@ def process_full_diff } final = {} current_file = nil - full_diff_utf8_encoded = @full_diff.encode("UTF-8", "binary", { - :invalid => :replace, - :undef => :replace - }) + if @full_diff.encoding.name != "UTF-8" + full_diff_utf8_encoded = @full_diff.encode("UTF-8", "binary", { :invalid => :replace, :undef => :replace }) + else + full_diff_utf8_encoded = @full_diff + end full_diff_utf8_encoded.split("\n").each do |line| if m = /^diff --git a\/(.*?) b\/(.*?)/.match(line) current_file = m[1]