Commit eb5749ed authored by Gabriel Mazetto's avatar Gabriel Mazetto

Fixed encoding problems with plain/text blobs being sent without charset.

parent cc836914
class RefsController < ApplicationController
include Gitlabhq::Encode
before_filter :project
# Authorize
......@@ -49,9 +50,16 @@ class RefsController < ApplicationController
def blob
if @tree.is_blob?
if @tree.text?
encoding = detect_encoding(@tree.data)
mime_type = encoding ? "text/plain; charset=#{encoding}" : "text/plain"
else
mime_type = @tree.mime_type
end
send_data(
@tree.data,
:type => @tree.text? ? "text/plain" : @tree.mime_type,
:type => mime_type,
:disposition => 'inline',
:filename => @tree.name
)
......
......@@ -5,9 +5,9 @@ module Gitlabhq
def utf8 message
return nil unless message
hash = CharlockHolmes::EncodingDetector.detect(message) rescue {}
if hash[:encoding]
CharlockHolmes::Converter.convert(message, hash[:encoding], 'UTF-8')
encoding = detect_encoding(message)
if encoding
CharlockHolmes::Converter.convert(message, encoding, 'UTF-8')
else
message
end.force_encoding("utf-8")
......@@ -16,5 +16,12 @@ module Gitlabhq
rescue
""
end
def detect_encoding message
return nil unless message
hash = CharlockHolmes::EncodingDetector.detect(message) rescue {}
return hash[:encoding] ? hash[:encoding] : nil
end
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment