From 5865e7604c1f2e5d04f4d8ff5ec5f1449da26e59 Mon Sep 17 00:00:00 2001 From: xibbar Date: Mon, 8 Apr 2013 04:06:39 +0000 Subject: * 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 --- lib/cgi/util.rb | 2 +- test/cgi/test_cgi_util.rb | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) 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 -- cgit v1.2.3