summaryrefslogtreecommitdiff
path: root/lib/uri/rfc2396_parser.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/uri/rfc2396_parser.rb')
-rw-r--r--lib/uri/rfc2396_parser.rb4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/uri/rfc2396_parser.rb b/lib/uri/rfc2396_parser.rb
index a6e5df91f9..6a2d819152 100644
--- a/lib/uri/rfc2396_parser.rb
+++ b/lib/uri/rfc2396_parser.rb
@@ -329,7 +329,9 @@ module URI
# Removes escapes from +str+
#
def unescape(str, escaped = @regexp[:ESCAPED])
- str.gsub(escaped) { [$&[1, 2]].pack('H2').force_encoding(str.encoding) }
+ enc = str.encoding
+ enc = Encoding::UTF_8 if enc == Encoding::US_ASCII
+ str.gsub(escaped) { [$&[1, 2]].pack('H2').force_encoding(enc) }
end
@@to_s = Kernel.instance_method(:to_s)