summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorseki <seki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-04-30 12:40:52 +0000
committerseki <seki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-04-30 12:40:52 +0000
commit0de35d50dcc03d041d5c4c5b9a79ad74cb07a566 (patch)
treeebfaceb8de8601fbfb2c9100ab1eeea1108a6850 /lib
parent215a910f15782af6be29afcf424d83801c0a5a6a (diff)
downloadruby-0de35d50dcc03d041d5c4c5b9a79ad74cb07a566.tar.gz
ruby-0de35d50dcc03d041d5c4c5b9a79ad74cb07a566.tar.xz
ruby-0de35d50dcc03d041d5c4c5b9a79ad74cb07a566.zip
[ruby-dev:34497] ERB::Util#url_encode bug fix. Reported by rubikitch.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16244 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib')
-rw-r--r--lib/erb.rb4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/erb.rb b/lib/erb.rb
index 42b3930c1..fade2c72b 100644
--- a/lib/erb.rb
+++ b/lib/erb.rb
@@ -799,7 +799,9 @@ class ERB
# Programming%20Ruby%3A%20%20The%20Pragmatic%20Programmer%27s%20Guide
#
def url_encode(s)
- s.to_s.gsub(/[^a-zA-Z0-9_\-.]/n){ sprintf("%%%02X", $&.unpack("C")[0]) }
+ s.to_s.dup.force_encoding("ASCII-8BIT").gsub(/[^a-zA-Z0-9_\-.]/n) {
+ sprintf("%%%02X", $&.unpack("C")[0])
+ }
end
alias u url_encode
module_function :u