diff options
author | xibbar <xibbar@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-04-08 04:06:39 +0000 |
---|---|---|
committer | xibbar <xibbar@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-04-08 04:06:39 +0000 |
commit | 5865e7604c1f2e5d04f4d8ff5ec5f1449da26e59 (patch) | |
tree | cc95c3ba9de47a7769e8e76994b10917ed60e56c | |
parent | a48f99ce5c88ea07ba0fae1df970103e8b9af328 (diff) |
* lib/cgi/util.rb (CGI::unescapeHTML): fix Hexadecimal numeric character.
[Bug #8183]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40181 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | lib/cgi/util.rb | 2 | ||||
-rw-r--r-- | test/cgi/test_cgi_util.rb | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/lib/cgi/util.rb b/lib/cgi/util.rb index 41ae724c8c..0959f0f094 100644 --- a/lib/cgi/util.rb +++ b/lib/cgi/util.rb @@ -55,7 +55,7 @@ class CGI end end asciicompat = Encoding.compatible?(string, "a") - string.gsub(/&(apos|amp|quot|gt|lt|\#[0-9]+|\#x[0-9A-Fa-f]+);/) do + string.gsub(/&(apos|amp|quot|gt|lt|\#[0-9]+|\#[xX][0-9A-Fa-f]+);/) do match = $1.dup case match when 'apos' then "'" diff --git a/test/cgi/test_cgi_util.rb b/test/cgi/test_cgi_util.rb index 2c003a0300..7129cb6c9e 100644 --- a/test/cgi/test_cgi_util.rb +++ b/test/cgi/test_cgi_util.rb @@ -61,4 +61,8 @@ class CGIUtilTest < Test::Unit::TestCase assert_equal(CGI::unescapeHTML("'&"><"),"'&\"><") end + def test_cgi_unescapeHTML_uppercasecharacter + assert_equal(CGI::unescapeHTML("あいう"),"\xE3\x81\x82\xE3\x81\x84\xE3\x81\x86") + end + end |