Jak píše Tomáš. Jakmile si začneš s texty s diakritikou, vždycky je lepší<br />
používat Unicode řetězce (i když je otrava psát před literály u a dávat<br />
si na to pořád pozor. Z textových souborů v UTF-8 bys to měl načítat<br />
přes modul codecs (codecs.open(filename, 'r', 'utf-8') -- aspoň si zvykneš<br />
na to, že k textovému souboru vždycky patří i údaj o kódování.  V Pythonu 3<br />
už je to nutnost.<br />
<br />
K tomu prvnímu je to tak, jak píše Petr Messner. Funkce repr() (nebo metoda,<br />
kterou tato funkce volá) má za úkol vytvořit textovou reprezentaci, která (když<br />
se vloží do zrojového textu) zajistí vytvoření objektu se stejnou hodnotou. A protože<br />
řetězce nebo unicode řetězce mohou být v souborech uloženy v různém kódování<br />
a podle toho by to mělo vypadat pokaždé jinak, vygeneruje tvar, který používá<br />
jen ASCII znaky -- i za cenu, že to není čitelné.<br />
<br />
Doporučuju si přečíst Kapitolu 4. Řetězce v "Ponořme se do Pythonu 3"<br />
http://diveintopython3.py.cz/strings.html<br />
<br />
Problém posloupností bajtů vs. abstraktních řetězců je tam vysvětlen<br />
celkem stručně.<br />
<br />
Měj se fajn,<br />
    Petr<br />
 <br />
 ______________________________________________________________<br />
 > Od: "Tomáš Drenčák"<br />
 > Komu: Konference PyCZ <python@py.cz><br />
 > Datum: 07.06.2011 10:33<br />
 > Předmět: Re: [python]Tisk unicode řetězce a tisk seznamu unicode řetězců<br />
 ><br />
Neviem to teraz overit, no myslim ze pred unicode string ma ist u, teda takto:
<div>seznam = [ u"žluťoučký kůň", u"úpěl ďábelské ódy" ]<br />
<br />

<div class="gmail_quote">2011/6/7 David Rohlede<br class="gmail_quote" />
<blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;">Ahoj,<br />
 <br />
 neví někdo, proč se následující příklad chová následovně?<br />
 <br />
 #!/usr/bin/env python<br />
 # -*- coding: utf-8 -*-<br />
 <br />
 seznam = [ "žluťoučký kůň", "úpěl ďábelské ódy" ]<br />
 <br />
 print seznam<br />
 <br />
 for i in seznam:<br />
    print i<br />
 <br />
 <br />
 ['xc5xbeluxc5xa5ouxc4x8dkxc3xbd kxc5xafxc5x88', 'xc3xbap<br />
 xc4x9bl xc4x8fxc3xa1belskxc3xa9 xc3xb3dy']<br />
 žluťoučký kůň<br />
 úpěl ďábelské ódy<br />
 <br />
 Tj. jednou to vytiskne dost nečitelně a podruhé správně čitelně (oboje<br />
 je asi správně)?<br />
 <br />
 zkoušel jsem třeba i<br />
 <br />
 print [i.encode("utf-8") for i in seznam]<br />
 <br />
 ale taky nic.<br />
 <br />
 Dík<br />
 <br />
 David</blockquote>
</div>
</div>