aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2011-12-07 04:07:51 -0800
committerJosé Valim <jose.valim@gmail.com>2011-12-07 04:07:51 -0800
commiteb22901920d339aa4cc510a74d75455f91e6e72f (patch)
treebac590ec167f3b3fbe2759a6f9c9525fb7d3377a
parent885a599303585b796da7a0a1c3ccd0bc5c642134 (diff)
parenta1986e7d55bed6895cab3d8b490f769d7abe727b (diff)
downloadrails-eb22901920d339aa4cc510a74d75455f91e6e72f.tar.gz
rails-eb22901920d339aa4cc510a74d75455f91e6e72f.tar.bz2
rails-eb22901920d339aa4cc510a74d75455f91e6e72f.zip
Merge pull request #3878 from kennyj/should_use_default_charset
Use default charset when we read content type without charset.
-rw-r--r--actionpack/lib/action_dispatch/http/response.rb2
-rw-r--r--actionpack/test/dispatch/response_test.rb11
2 files changed, 12 insertions, 1 deletions
diff --git a/actionpack/lib/action_dispatch/http/response.rb b/actionpack/lib/action_dispatch/http/response.rb
index f1e85559a3..a1ece87d21 100644
--- a/actionpack/lib/action_dispatch/http/response.rb
+++ b/actionpack/lib/action_dispatch/http/response.rb
@@ -69,7 +69,7 @@ module ActionDispatch # :nodoc:
if content_type = self["Content-Type"]
type, charset = content_type.split(/;\s*charset=/)
@content_type = Mime::Type.lookup(type)
- @charset = charset || "UTF-8"
+ @charset = charset || self.class.default_charset
end
prepare_cache_control!
diff --git a/actionpack/test/dispatch/response_test.rb b/actionpack/test/dispatch/response_test.rb
index 5abbaf74fe..337ece6b88 100644
--- a/actionpack/test/dispatch/response_test.rb
+++ b/actionpack/test/dispatch/response_test.rb
@@ -130,6 +130,17 @@ class ResponseTest < ActiveSupport::TestCase
assert_equal('application/xml; charset=utf-16', resp.headers['Content-Type'])
end
+
+ test "read content type without charset" do
+ original = ActionDispatch::Response.default_charset
+ begin
+ ActionDispatch::Response.default_charset = 'utf-16'
+ resp = ActionDispatch::Response.new(200, { "Content-Type" => "text/xml" })
+ assert_equal('utf-16', resp.charset)
+ ensure
+ ActionDispatch::Response.default_charset = original
+ end
+ end
end
class ResponseIntegrationTest < ActionDispatch::IntegrationTest