> "David Rohleder" > Petr Přikryl píše > > Jak píše Tomáš. Jakmile si začneš s texty s diakritikou, > > vždycky je lepší používat Unicode řetězce (i když je otrava > > psát před literály u a dávat [...] > > a není ta definice na začátku > # -*- coding: utf-8 -*- > ekvivalentní u"řetězec"? Není. Ta definice na začátku souboru jen říká interpretu, jak má interpretovat znaky ve zdrojovém textu. Neříká nic dalšího o tom, co se s nimi děje u starých řetězců (bez u na začátku). Pokud je zdrojový text v utf-8, pak i v paměti bude v řetězcovém objektu stejná posloupnost bajtů, jako v souboru. V řetězcovém objektu ale není nikde informace o kódování -- ta existuje mimo objekty a má charakter dohody. (Každý soubor může používat jiný způsob kódování. Nevím o způsobu, jak by se dalo v pythonovském programu zpětně zjistit, v jakém kódování byl uveden zdrojový text -- ale možná něco takového je.)
Teprve když použiteš unicode řetězec, přehrká interpret při překladu posloupnost bajtů z literálu za pomocí informace z # -*- coding: ... -*- na posloupnost abstraktních unicode znaků. V Pythonu 3 už se prefix u psát nemusí -- všechny řetězcové literály se převádějí na unicode řetězce. Unicode řetěze nevyužívá žádné kódování. Je to prostě unicode řetězec. P. _______________________________________________ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python