2013-05-21 10 views

Odpowiedz

18

Możesz wydrukować dowolny znak Unicode, używając sekwencji specjalnej. Upewnij się, że tworzysz ciąg znaków Unicode.

print u'\u2713' 
+0

Podoba mi się ta droga. Skąd wiesz, jak wydrukować każdą postać Unicode? Czy jest jakaś wyczerpująca lista postaci? –

+0

Używam tylko sprawdzonego Google :). Następująca strona wygląda obiecująco, jeśli nie wiesz, czego szukasz: http://unicode-table.com/ – Jerome

+0

Istnieje również lista na [Wikipedia] (http://en.wikipedia.org/wiki/List_of_Unicode_characters) , którego używam od czasu do czasu. – lenz

3

Jak to:

print u'\u2713'.encode('utf8') 

Kodowanie powinno pasować do jednego terminala (lub gdziekolwiek wysyłasz wyjście).

+0

To jest coś, czego szukałem przez chwilę. –

8

Rozwiązanie defining python source file encoding:

#!/usr/bin/python 
# -*- coding: UTF-8 -*- 

print '✓' 

http://ideone.com/dTW5D8

+1

Czy ma to również wpływ na kodowanie wyjściowe, czy też wciąż wymaga podania? – LJNielsenDk

+0

nie, kodowanie wyjścia musi być traktowane oddzielnie (przynajmniej w Pythonie 2.x). Linia '# coding' informuje tłumacza o tym, jak interpretować kod źródłowy. – lenz

+0

Powyższe rozwiązanie jest nieco niejawne: ponieważ @chico nie używa łańcucha unicode, ciąg jest już niejawnie zakodowany - z kodowaniem pliku źródłowego. Jeśli zmienisz kodowanie pliku, zmieni się również kodowanie wyjściowe. Lepiej byłoby napisać 'print u'✓'.encode ('utf8')'. – lenz

6

Od Pythona 2.1 można użyć sekwencji \N{name} ucieczki wstawić znaki Unicode przez ich nazwy. Za pomocą tej funkcji można uzyskać zaznaczenie symbol tak:

$ python -c "print(u'\N{check mark}')" 
✓ 

Uwaga: Aby funkcja ta mogła działać należy użyć Unicode ciąg dosłowne. Z tego powodu używany jest prefiks u. W języku Python 3 prefiks nie jest obowiązkowy, ponieważ literały łańcuchów domyślnie są w standardzie Unicode.

+0

Każdego dnia uczę się czegoś nowego! :-) – kkurian

Powiązane problemy