diff --git a/test/test_utils.py b/test/test_utils.py
index a8ab876850..abaf1ab733 100644
--- a/test/test_utils.py
+++ b/test/test_utils.py
@@ -200,6 +200,8 @@ class TestUtil(unittest.TestCase):
 
     def test_unescape_html(self):
         self.assertEqual(unescapeHTML('%20;'), '%20;')
+        self.assertEqual(unescapeHTML('/'), '/')
+        self.assertEqual(unescapeHTML('/'), '/')
         self.assertEqual(
             unescapeHTML('é'), 'é')
 
diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py
index 472d4df41f..245d623d86 100644
--- a/youtube_dl/utils.py
+++ b/youtube_dl/utils.py
@@ -348,7 +348,7 @@ def _htmlentity_transform(entity):
     if entity in compat_html_entities.name2codepoint:
         return compat_chr(compat_html_entities.name2codepoint[entity])
 
-    mobj = re.match(r'#(x?[0-9]+)', entity)
+    mobj = re.match(r'#(x[0-9a-fA-F]+|[0-9]+)', entity)
     if mobj is not None:
         numstr = mobj.group(1)
         if numstr.startswith('x'):