[python] Re: cestina a python

Petr Prikryl Prikryl na skil.cz
Úterý Duben 19 09:30:31 CEST 2005


Ondřej Súkup napsal...
[...]
> >>>Pochopil jsem ze python umi pracovat s unicode.
> >>>
> >>>#! /usr/bin/env python
> >>># -*- coding: iso-8859-2 -*-
> >>>print u"Jsem rád, ze jsem te poznal."
[...]
> k tomu iso-8859-2 neni unicode ale latin2.....
> co tak zkusit: # -*- coding: utf8 -*-

To s problémem vůbec nesouvisí. Speciální komentář
říká, v jakém kódování je zapsán zdrojový text.
Při překladu zdrojového textu se u"řetězec" převede
z uvedeného kódování do unicode. Poté už se ztrácí
jakákoliv vazba na zápis ve zdrojovém textu a řetězec
je vnitřně udržován jenom jako unicode. 

Jinými slovy, jakmile je přeloženo, nemá 
-*- coding: ... -*- na cokoliv dalšího vliv.
Pokud používám editor, který ukládá výsledek
v kódování iso-8859-2, pak to co vidím v okně
editoru odpovídá zápisu v uvedeném kódování 
a identifikaci tohoto kódování musím uvést
ve speciálním komentáři. Pokud provedu konverzi
zdrojového textu do utf-8, musím změnit identifikaci
ve speciálním komentáři.

Ještě jinými slovy. Identifikace kódování ve speciálním
komentáři určuje, jaká transformace se použije při převodu
u"tohoto literálu" do unicode podoby. Pokud ji uvedu špatně,
provede se převod špatně. Pravděpodobně se narazí na kód,
ktery v identifikovaném kódování není definován a zahlásí
se chyba.

Petr






Další informace o konferenci Python