aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--actionpack/lib/action_dispatch/http/upload.rb5
-rw-r--r--actionpack/test/dispatch/uploaded_file_test.rb7
2 files changed, 3 insertions, 9 deletions
diff --git a/actionpack/lib/action_dispatch/http/upload.rb b/actionpack/lib/action_dispatch/http/upload.rb
index ed6140dac5..a15ad28f16 100644
--- a/actionpack/lib/action_dispatch/http/upload.rb
+++ b/actionpack/lib/action_dispatch/http/upload.rb
@@ -33,10 +33,9 @@ module ActionDispatch
private
def encode_filename(filename)
- # Encode the filename in the default_external encoding, unless it is nil or we're in 1.8
+ # Encode the filename in the utf8 encoding, unless it is nil or we're in 1.8
if "ruby".encoding_aware? && filename
- encoding = Encoding.default_external
- filename.force_encoding(encoding)
+ filename.force_encoding("UTF-8").encode!
else
filename
end
diff --git a/actionpack/test/dispatch/uploaded_file_test.rb b/actionpack/test/dispatch/uploaded_file_test.rb
index 5e0c5fb21e..44c15694f7 100644
--- a/actionpack/test/dispatch/uploaded_file_test.rb
+++ b/actionpack/test/dispatch/uploaded_file_test.rb
@@ -14,12 +14,7 @@ module ActionDispatch
end
if "ruby".encoding_aware?
- def test_filename_should_be_in_default_encoding
- Encoding.default_external = "UTF-16LE"
- uf = Http::UploadedFile.new(:filename => 'foo', :tempfile => Object.new)
- assert "UTF-16LE", uf.original_filename.encoding.to_s
-
- Encoding.default_external = "UTF-8"
+ def test_filename_should_be_in_utf_8
uf = Http::UploadedFile.new(:filename => 'foo', :tempfile => Object.new)
assert "UTF-8", uf.original_filename.encoding.to_s
end