[python] Tisk unicode řetězce a tisk seznamu unicode řetězců
Petr Přikryl
prikryl na atlas.cz
Úterý Červen 7 13:23:34 CEST 2011
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
si na to pořád pozor. Z textových souborů v UTF-8 bys to měl načítat
přes modul codecs (codecs.open(filename, 'r', 'utf-8') -- aspoň si zvykneš
na to, že k textovému souboru vždycky patří i údaj o kódování. V Pythonu 3
už je to nutnost.
K tomu prvnímu je to tak, jak píše Petr Messner. Funkce repr() (nebo metoda,
kterou tato funkce volá) má za úkol vytvořit textovou reprezentaci, která (když
se vloží do zrojového textu) zajistí vytvoření objektu se stejnou hodnotou. A protože
řetězce nebo unicode řetězce mohou být v souborech uloženy v různém kódování
a podle toho by to mělo vypadat pokaždé jinak, vygeneruje tvar, který používá
jen ASCII znaky -- i za cenu, že to není čitelné.
Doporučuju si přečíst Kapitolu 4. Řetězce v "Ponořme se do Pythonu 3"
http://diveintopython3.py.cz/strings.html
Problém posloupností bajtů vs. abstraktních řetězců je tam vysvětlen
celkem stručně.
Měj se fajn,
Petr
______________________________________________________________
> Od: "Tomáš Drenčák"
> Komu: Konference PyCZ
> Datum: 07.06.2011 10:33
> Předmět: Re: [python]Tisk unicode řetězce a tisk seznamu unicode řetězců
>
Neviem to teraz overit, no myslim ze pred unicode string ma ist u, teda takto:
seznam = [ u"žluťoučký kůň", u"úpěl ďábelské ódy" ]
2011/6/7 David Rohlede
Ahoj,
neví někdo, proč se následující příklad chová následovně?
#!/usr/bin/env python
# -*- coding: utf-8 -*-
seznam = [ "žluťoučký kůň", "úpěl ďábelské ódy" ]
print seznam
for i in seznam:
print i
['xc5xbeluxc5xa5ouxc4x8dkxc3xbd kxc5xafxc5x88', 'xc3xbap
xc4x9bl xc4x8fxc3xa1belskxc3xa9 xc3xb3dy']
žluťoučký kůň
úpěl ďábelské ódy
Tj. jednou to vytiskne dost nečitelně a podruhé správně čitelně (oboje
je asi správně)?
zkoušel jsem třeba i
print [i.encode("utf-8") for i in seznam]
ale taky nic.
Dík
David
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://www.py.cz/pipermail/python/attachments/20110607/db1fdf80/attachment.html>
Další informace o konferenci Python