diff options
author | Ashe Connor <ashe@kivikakk.ee> | 2018-03-07 11:41:46 +1100 |
---|---|---|
committer | Ashe Connor <ashe@kivikakk.ee> | 2018-03-07 12:58:02 +1100 |
commit | e52ab312069a9af0c37c1666141752f3bc805054 (patch) | |
tree | 4ba840a506256a5c7c3ebcabda9e2031d1c5af6e /activesupport/lib/active_support/messages/metadata.rb | |
parent | e126078a0e013acfe0a397a8dad33b2c9de78732 (diff) | |
download | rails-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/lib/active_support/messages/metadata.rb')
0 files changed, 0 insertions, 0 deletions