summaryrefslogtreecommitdiff
path: root/lib/uri
diff options
context:
space:
mode:
Diffstat (limited to 'lib/uri')
-rw-r--r--lib/uri/common.rb22
1 files changed, 9 insertions, 13 deletions
diff --git a/lib/uri/common.rb b/lib/uri/common.rb
index 5914868e94..1da9f47647 100644
--- a/lib/uri/common.rb
+++ b/lib/uri/common.rb
@@ -981,17 +981,9 @@ module URI
isindex = false
end
- if use__charset_
- if key == '_charset_'
- if e = get_encoding(val)
- enc = e
- use__charset_ = false
- ary.each do |k, v|
- v.force_encoding(enc)
- k.force_encoding(enc)
- end
- end
- end
+ if use__charset_ and key == '_charset_' and e = get_encoding(val)
+ enc = e
+ use__charset_ = false
end
key.gsub!(/\+|%\h\h/, TBLDECWWWCOMP_)
@@ -1001,10 +993,14 @@ module URI
val = ''
end
- val.force_encoding(enc)
- key.force_encoding(enc)
ary << [key, val]
end
+ ary.each do |k, v|
+ k.force_encoding(enc)
+ k.scrub!
+ v.force_encoding(enc)
+ v.scrub!
+ end
ary
end