mirror of
https://github.com/l1ving/youtube-dl
synced 2024-11-22 05:22:54 +08:00
Fix unicode_escape (Fixes #2695)
This commit is contained in:
parent
98b7cf1ace
commit
676eb3f2dd
@ -38,6 +38,7 @@ from youtube_dl.utils import (
|
||||
xpath_with_ns,
|
||||
parse_iso8601,
|
||||
strip_jsonp,
|
||||
uppercase_escape,
|
||||
)
|
||||
|
||||
if sys.version_info < (3, 0):
|
||||
@ -279,6 +280,9 @@ class TestUtil(unittest.TestCase):
|
||||
d = json.loads(stripped)
|
||||
self.assertEqual(d, [{"id": "532cb", "x": 3}])
|
||||
|
||||
def test_uppercase_escpae(self):
|
||||
self.assertEqual(uppercase_escape(u'aä'), u'aä')
|
||||
self.assertEqual(uppercase_escape(u'\\U0001d550'), u'𝕐')
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
@ -2,6 +2,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import calendar
|
||||
import codecs
|
||||
import contextlib
|
||||
import ctypes
|
||||
import datetime
|
||||
@ -1263,9 +1264,11 @@ class PagedList(object):
|
||||
|
||||
|
||||
def uppercase_escape(s):
|
||||
unicode_escape = codecs.getdecoder('unicode_escape')
|
||||
return re.sub(
|
||||
r'\\U[0-9a-fA-F]{8}',
|
||||
lambda m: m.group(0).decode('unicode-escape'), s)
|
||||
lambda m: unicode_escape(m.group(0))[0],
|
||||
s)
|
||||
|
||||
try:
|
||||
struct.pack(u'!I', 0)
|
||||
|
Loading…
Reference in New Issue
Block a user