Python string unicode

Aku punya string yang mengandung karakter unicode misal \u2026 dll. Entah bagaimana itu tidak menerima saya sebagai unicode, tetapi diterima sebagai str. Bagaimana cara mengubahnya kembali ke unicode?

>>> a="Hello\u2026"
>>> b=u"Hello\u2026"
>>> print a
Hello\u2026
>>> print b
Hello…
>>> print unicode(a)
Hello\u2026
>>> 

Jadi jelas unicode(a) adalah tidak menjawab. Kemudian apa?

Mengomentari pertanyaan (1)
Larutan

Unicode lolos hanya bekerja di unicode string, jadi ini

 a="\u2026"

sebenarnya adalah sebuah string dari 6 karakter: '\', 'u', '2', '0', '2', '6'.

Untuk membuat unicode ini, gunakan decode('unicode-melarikan diri'):

a="\u2026"
print repr(a)
print repr(a.decode('unicode-escape'))

## '\\u2026'
## u'\u2026'
Komentar (0)

Decode dengan unicode-melarikan diri codec:

>>> a="Hello\u2026"
>>> a.decode('unicode-escape')
u'Hello\u2026'
>>> print _
Hello…

Hal ini karena untuk non-unicode string \u2026 tidak diakui tapi malah diperlakukan sebagai literal serangkaian karakter (untuk menempatkan lebih jelas, 'Halo\\u2026'). Anda perlu untuk men-decode lolos, dan unicode-melarikan diri codec dapat melakukannya untuk anda.

Perhatikan bahwa anda bisa mendapatkan unicode untuk mengakui hal itu dalam cara yang sama dengan menentukan codec argumen:

>>> unicode(a, 'unicode-escape')
u'Hello\u2026'

Tapi a.decode() adalah cara yang lebih baik.

Komentar (0)
>>> a="Hello\u2026"
>>> print a.decode('unicode-escape')
Hello…
Komentar (0)