aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/CHANGELOG.md
diff options
context:
space:
mode:
authorAshe Connor <ashe@kivikakk.ee>2018-03-07 11:41:46 +1100
committerAshe Connor <ashe@kivikakk.ee>2018-03-07 12:58:02 +1100
commite52ab312069a9af0c37c1666141752f3bc805054 (patch)
tree4ba840a506256a5c7c3ebcabda9e2031d1c5af6e /activesupport/CHANGELOG.md
parente126078a0e013acfe0a397a8dad33b2c9de78732 (diff)
downloadrails-e52ab312069a9af0c37c1666141752f3bc805054.tar.gz
rails-e52ab312069a9af0c37c1666141752f3bc805054.tar.bz2
rails-e52ab312069a9af0c37c1666141752f3bc805054.zip
URI.unescape handles mixed Unicode/escaped input
Previously, URI.enscape could handle Unicode input (without any actual escaped characters), or input with escaped characters (but no actual Unicode characters) - not both. URI.unescape("\xe3\x83\x90") # => "バ" URI.unescape("%E3%83%90") # => "バ" URI.unescape("\xe3\x83\x90%E3%83%90") # => # Encoding::CompatibilityError We need to let `gsub` handle this for us, and then force back to the original encoding of the input. The result String will be mangled if the percent-encoded characters don't conform to the encoding of the String itself, but that goes without saying. Signed-off-by: Ashe Connor <ashe@kivikakk.ee>
Diffstat (limited to 'activesupport/CHANGELOG.md')
-rw-r--r--activesupport/CHANGELOG.md10
1 files changed, 10 insertions, 0 deletions
diff --git a/activesupport/CHANGELOG.md b/activesupport/CHANGELOG.md
index a7af51f83e..9351a75dfa 100644
--- a/activesupport/CHANGELOG.md
+++ b/activesupport/CHANGELOG.md
@@ -1,5 +1,15 @@
## Rails 6.0.0.alpha (Unreleased) ##
+* Fix bug where `URI.unscape` would fail with mixed Unicode/escaped character input:
+
+ URI.unescape("\xe3\x83\x90") # => "バ"
+ URI.unescape("%E3%83%90") # => "バ"
+ URI.unescape("\xe3\x83\x90%E3%83%90") # => Encoding::CompatibilityError
+
+ GH#32183
+
+ *Ashe Connor*, *Aaron Patterson*
+
* Add `:private` option to ActiveSupport's `Module#delegate`
in order to delegate methods as private: