[python] Poskozena diakritika pri zpracovani mailu na starsim Ubuntu

Petr Blahos petrblahos na gmail.com
Středa Říjen 23 12:46:58 CEST 2013


Ahoj,

nepřešlo ubuntu mezi těma verzema z kódování češtiny iso-8859-2 na utf-8?
Myslím, že doma mám jeden 10.04, mohl bych se podívat. Zkusil bych
každopádně na 10.04
   LC_ALL="C" mujskript.py
jestli se to píše takhle. Nebo ma 12.04
  LC_ALL="cs_CZ.iso-8859-2" mujskript.py
jestli se to píše takhle, ale pokud to dopadne dobře, tak bych z toho ještě
nic
neusuzoval.

Každopádně:
u"odložení trestního oznámení".encode("utf-8") odpovídá tomuto:
   odlo=C5=BEen=C3=AD trestn=C3=ADho ozn=C3=A1men=C3=AD
takže tam je to správně.

Ale "odlo=17Een=ED trestn=EDho ozn=E1men=ED"
je takovej zvláštní paskvil, který dostanu, když udělám
  "odlo\xC5\xBEen\xC3\xAD trestn\xC3\xADho
ozn\xC3\xA1men\xC3\xAD".decode("utf-8")
Takže se tam objeví už dekódovanej string, ale někdo si
myslí, že to má být unicode, a znovu ho dekóduje.

Podezíral bych wxPython, ale to tam asi nemáš ;-)
--
Petr





2013/10/23 <mol-python na seznam.cz>

> Kecám z hladu, pardon.
>
> ---------- Původní zpráva ----------
> Od: mol-python na seznam.cz
> Datum: 23. 10. 2013
> Předmět: Re: [python] Poskozena diakritika pri zpracovani mailu na starsim
> Ubuntu
>
> Dobrý den.
> Předpokládám, že ty ukázky dole jsou až z toho odesílaného textu? Takže by
> bylo asi potřeba vidět spíš tu část kódu, která to vytváří. Protože
> rozkódovaný je to dobře, akorát se zakódovalo jako latin2, což neodpovídá
> posílané hlavičce.
>
> Zdraví,
> MM
>
> ---------- Původní zpráva ----------
> Od: Vladimir Macek <macek na sandbox.cz>
> Datum: 23. 10. 2013
> Předmět: [python] Poskozena diakritika pri zpracovani mailu na starsim
> Ubuntu
>
> Zdravim,
>
> dodavam klientovi skript pro stazeni mailu z POP3, preformatovani a
> odeslani pres SMTP. Touto metodou beru z puvodniho mailu textovou cast:
>
> def get_email_text(self, msg):
>     """
>     get plaintext part of the message, or None if none
>     """
>     get_charset = lambda msg: msg.get_content_charset() or
> msg.get_charset() or 'ascii'
>     get_payload = lambda msg: unicode(msg.get_payload(decode=True),
> get_charset(msg), 'replace')
>
>     maintype = msg.get_content_maintype()
>     if maintype == 'multipart':
>         return u'\n'.join(get_payload(part) for part in
> typed_subpart_iterator(msg, 'text', 'plain'))
>     elif maintype == 'text':
>         return get_payload(msg)
>     else:
>         return None
>
>
> U me na Ubuntu 12.04.3 LTS s Python 2.7 i na Debian Squeeze s Python 2.6
> se maily zpracuji dobre. Zahlavi hlavni casti zdrojaku vysledneho mailu a
> dobre kodovany vyraz "odlozeni trestniho oznameni":
>
> Content-Type: text/html; charset="utf-8"
> MIME-Version: 1.0
> Content-Transfer-Encoding: quoted-printable
>
> odlo=C5=BEen=C3=AD trestn=C3=ADho ozn=C3=A1men=C3=AD
>
>
> Nicmene u klienta na Ubuntu 10.04 LTS s Python 2.6 maji vsechny maily
> diakritiku poskozenou, opet zahlavi s stejne slovo blbe kodovane:
>
> Content-Type: text/html; charset="utf-8"
> MIME-Version: 1.0
> Content-Transfer-Encoding: quoted-printable
>
> odlo=17Een=ED trestn=EDho ozn=E1men=ED
>
>
> Vim, ze 10.04 je dost stara verze, ale takhle zlobit? Zaslal mi vypis
> promennych prostredi, nevidim tam nic podezreleho.
>
> Nesetkal se nekdo z vas s necim podobnym?
>
> Diky predem,
>
> Vlada
>
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
>
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>



-- 
_________________________________
http://sites.google.com/site/petrsstuff/
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://www.py.cz/pipermail/python/attachments/20131023/11bc88e3/attachment.html>


Další informace o konferenci Python