Mam wartości punktu kodu sześciowego dla długiego ciągu. Na krótki sposób, w porządku.

msg = unichr(0x062A) + unichr(0x0627) + unichr(0x0628)
print msg

Jednakże, ponieważ istnieje jednak alternatywny API Unicode UNICHR (), pomyślałem, że musi być sposób na przekazanie całego ciągu punktu kodu do niego. Do tej pory nie byłem w stanie tego zrobić.

Teraz muszę wpisać ciąg 150 wartości heksowych (punktów kodu), takich jak 3 powyżej, aby wygenerować kompletny ciąg. Miałem nadzieję uzyskać coś takiego

msg = unicode('0x062A, 0x0627....')

Muszę użyć "MSG". Drukowanie było to samo przykład. Jakieś pomysły?

1
fkl 8 sierpień 2012, 11:36

3 odpowiedzi

Najlepsza odpowiedź

Może coś takiego:

", ".join(unichr(u) for u in (0x062A, 0x0627, 0x0628))

Wynik:

u'\u062a, \u0627, \u0628'

Edytuj: Ta używa str.join .

2
jamylak 8 sierpień 2012, 08:36

Trudno powiedzieć, o co pytasz dokładnie. Szukasz u'\u062A\u0627\u0628'? Escape \u umożliwia wprowadzenie poszczególnych znaków według punktu kodu w łańcuchu Unicode.

2
BrenBarn 8 sierpień 2012, 07:39

Po twoim przykładzie:

>>> c = u'\u062A\u0627\u0628'
>>> print c
تاب
0
mvillaress 8 sierpień 2012, 07:41