كيف تقوم بتحويل تسلسل الهروب يونيكود إلى أحرف Unicode في سلسلة Python

StackOverflow https://stackoverflow.com/questions/990169

  •  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
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top