كيف تقوم بتحويل تسلسل الهروب يونيكود إلى أحرف Unicode في سلسلة Python
-
13-09-2019 - |
سؤال
عندما حاولت الحصول على محتوى علامة باستخدام "Unicode (Head.Contents [3])" أحصل على الإخراج مماثلة لهذا: "ChristenSen SK XF6LD". أريد أن يتم إرجاع تسلسل الهروب كسلسلة. كيف تفعل ذلك في بيثون؟
المحلول
على افتراض أن Python يرى الاسم كسلسلة عادية، عليك أولا فك شفرة ذلك إلى Unicode:
>>> name
'Christensen Sk\xf6ld'
>>> unicode(name, 'latin-1')
u'Christensen Sk\xf6ld'
طريقة أخرى لتحقيق هذا:
>>> name.decode('latin-1')
u'Christensen Sk\xf6ld'
لاحظ "U" أمام السلسلة، مما يشير إلى أنه غير مصقول. إذا قمت بطباعة هذا، فسيتم عرض الرسالة المعلمة بشكل صحيح:
>>> print name.decode('latin-1')
Christensen Sköld
BTW: عند الضرورة، يمكنك استخدام طريقة DE "EXODE" لتحويل Unicode إلى EG سلسلة UTF-8:
>>> name.decode('latin-1').encode('utf-8')
'Christensen Sk\xc3\xb6ld'
نصائح أخرى
إعطاء سلسلة البايت مع يونيكود يهرب b"\N{SNOWMAN}"
, b"\N{SNOWMAN}".decode('unicode-escape)
سوف تنتج سلسلة يونيكود المتوقعة u'\u2603'
.
أظن أنه يعمل بشكل صحيح بشكل صحيح. بشكل افتراضي، يعرض Python سلاسل في ترميز ASCII، نظرا لأن جميع المحطات تدعم Unicode. إذا قمت بالفعل بطباعة السلسلة، على الرغم من أنه يجب أن تعمل. انظر المثال التالي:
>>> u'\xcfa'
u'\xcfa'
>>> print u'\xcfa'
Ïa