Search on blog:

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)

If you like it
Buy a Coffee