[utils] Skip invalid/non HTML entities (Closes #7518)

This commit is contained in:
Sergey M․ 2015-11-16 20:20:16 +06:00
parent bd1512d196
commit 7aefc49c40
2 changed files with 7 additions and 3 deletions

View File

@ -210,8 +210,8 @@ class TestUtil(unittest.TestCase):
self.assertEqual(unescapeHTML('%20;'), '%20;') self.assertEqual(unescapeHTML('%20;'), '%20;')
self.assertEqual(unescapeHTML('/'), '/') self.assertEqual(unescapeHTML('/'), '/')
self.assertEqual(unescapeHTML('/'), '/') self.assertEqual(unescapeHTML('/'), '/')
self.assertEqual( self.assertEqual(unescapeHTML('é'), 'é')
unescapeHTML('é'), 'é') self.assertEqual(unescapeHTML('�'), '�')
def test_daterange(self): def test_daterange(self):
_20century = DateRange("19000101", "20000101") _20century = DateRange("19000101", "20000101")

View File

@ -396,7 +396,11 @@ def _htmlentity_transform(entity):
numstr = '0%s' % numstr numstr = '0%s' % numstr
else: else:
base = 10 base = 10
# See https://github.com/rg3/youtube-dl/issues/7518
try:
return compat_chr(int(numstr, base)) return compat_chr(int(numstr, base))
except ValueError:
pass
# Unknown entity in name, return its literal representation # Unknown entity in name, return its literal representation
return ('&%s;' % entity) return ('&%s;' % entity)