blog.furas.pl
# prywatne notatki - Python, Linux, Machine Learning, etc.

Python Unicode - decode & encode

--------------+                                                 +--------------
    FROM      |                                                 |      TO
--------------+                                                 +--------------
         read |                                                 | write
        input |                                                 | print
--------------+                                                 +--------------
              |                                                 |
          str |  --- [d]ecode --->  UNICODE  --- [e]ncode --->  | str
              |                                                 |
--------------+                                                 +--------------
        ascii |                                                 | ascii
--------------+                                                 +--------------
        utf-8 |                                                 | utf-8
--------------+                                                 +--------------
   iso-8859-2 |                                                 | iso-8859-2
       latin2 |                                                 | latin2
--------------+                                                 +--------------
 windows-1250 |                                                 | windows-1250
       cp1250 |                                                 | cp1250
--------------+                                                 +--------------
        cp852 |                                                 | cp852
--------------+                                                 +--------------

      Można zapamiętać dzięki kolejności alfabetycznej: [d]ecode, [e]ncode
python unicode decode & encode

Zamiana tekstu na prawdziwy Unicode, który nie jest tekstem Unicode (nie ma prefixu u) a mimo wszystko zawiera kody Unicode (np. \u041d)

"\u041d\u0438\u043a\u043e\u043b\u0430".decode('unicode-escape') # bez przedrostku 'u'

u"\u041d\u0438\u043a\u043e\u043b\u0430"  # z przedrostkiem 'u'

i teraz można dopiero to zamienić na 'utf-8' i wypisać na konsoli Linuxa

print u"\u041d\u0438\u043a\u043e\u043b\u0430".encode('utf-8')

Никола

Windows może wymagać zamiany nie na utf-8 ale na cp852 - lub na coś innego o ile obsługuje Cyrylicę.


Python 2 - codecs

Kodowanie polskich znaków (pl.wikipedia)

UTF-8 (pl.wikipedia)
UTF-8 (en.wikipedia)

Unicode (pl.wikipedia)
Unicode (en.wikipedia)

List of Unicode characters (en.wikipedia)

Książki: python-dla-kazdego-podstawy-programowania python-wprowadzenie python-leksykon-kieszonkowy python-receptury python-programuj-szybko-i-wydajnie python-projekty-do-wykorzystania black-hat-python-jezyk-python-dla-hackerow-i-pentesterow efektywny-python-59-sposobow-na-lepszy-kod tdd-w-praktyce-niezawodny-kod-w-jezyku-python aplikacje-internetowe-z-django-najlepsze-receptury