2011-08-09 20 views
5

Onaltılık dize '\xd3' ayrıca şu şekilde de gösterilebilir: Ó.Onaltılık karakterden python'daki Unicode karakterine dönüştürme

Ben konsola onaltılık dize karakter temsilini almak için bulduğum en kolay yoludur:

print unichr(ord('\xd3')) 

Veya İngilizce

, daha sonra bu sayıyı dönüştürmek, bir sayıya onaltılık dize dönüştürmek unicode kod noktası, daha sonra bunu ekrana gönderir. Bu ekstra bir adım gibi görünüyor. Daha kolay bir yolu var mı?

cevap

8
print u'\xd3' 

Yapmanız gereken tek şey. Bir şekilde Python'a bir unicode literal olduğunu söylemelisiniz; önde gelen u bunu yapar. Birden fazla karakter için bile çalışır.

Eğer bir hazır bahsediyor fakat değişken değilseniz:

codepoints = '\xd3\xd3' 
print codepoints.decode("latin-1") 

Düzenleme: bu bilgilerin terminal kodlama ile uyumsuz olmadığını print Ing, işe yaramaz belirli kodlama belirtme yani sadece print yapalım Otomatik olarak encode(sys.stdout.encoding). Teşekkürler @ThomasK.

+0

Ancak, kod noktalarından oluşan bir diziniz varsa ne yaparsınız? Dizeyi gerçek dize temsiline nasıl dönüştürürsünüz? Bir fonksiyon mu? 'Yazabilir miyiz?' – Geo

+0

@Geo: 'u' bir işlev değil, dizenin değişmez sözdiziminin bir parçasıdır. Ama 'kod noktalarından oluşan bir dizgi' nedir? –

+0

@Thomas Bunu yanıtlamak için cevabımı düzenledim. – agf

İlgili konular