Deutsch English Français Italiano |
<uoatlo$bjt$1@cabale.usenet-fr.net> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!news.mixmin.net!proxad.net!feeder1-2.proxad.net!usenet-fr.net!.POSTED!not-for-mail From: Olivier Miakinen <om+news@miakinen.net> Newsgroups: fr.comp.usenet.lecteurs-de-news,fr.comp.lang.python Subject: Re: Encodage, charset et type MIME Followup-To: fr.comp.lang.python Date: Thu, 18 Jan 2024 11:14:15 +0100 Organization: There's no cabale Lines: 56 Message-ID: <uoatlo$bjt$1@cabale.usenet-fr.net> References: <slrnuqhnvu.nfk.doug.letough@arcadia.local.mcos.nc> NNTP-Posting-Host: 200.89.28.93.rev.sfr.net Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 8bit X-Trace: cabale.usenet-fr.net 1705572856 11901 93.28.89.200 (18 Jan 2024 10:14:16 GMT) X-Complaints-To: abuse@usenet-fr.net NNTP-Posting-Date: Thu, 18 Jan 2024 10:14:16 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0 SeaMonkey/2.49.4 In-Reply-To: <slrnuqhnvu.nfk.doug.letough@arcadia.local.mcos.nc> Bytes: 3519 [diapublication, suivi vers fr.comp.lang.python] Bonjour Doug, Le 18/01/2024 09:23, Doug713705 a �crit : > > Je suis en train de coder un petite app en Python dont l'objectif et de > traiter des mails de diverses provenances dont Usenet. > > �a fait maintenant quelques ann�es que je me suis �loign� d'Usenet et > j'ai compl�tement oubli� tout ce que je pouvais savoir sur les > subtilit�s et pi�ges qui se cachent derri�re les notions de charset, > d'encodage et de type MIME. > > En clair, je lutte pour d�coder de mani�re fiable les articles en > provenance d'Usenet lorsque le corps d'un article est encod� en utf-8 et > publi� en Quoted-Printable. �a devient le bazar avec des "=" en fin de > ligne qui se m�langent avec ceux des caract�res encod�s en UTF-8. C'est d�fini dans le RFC 2045 : <https://datatracker.ietf.org/doc/html/rfc2045#section-6.7> En gros il y a deux situations possibles pour le caract�re = : - soit il est suivi de deux chiffres hexa (0 � 9 ou A � F, mais je te recommande d'accepter aussi les minuscules a � f) ; - soit il est suivi de CRLF (avec �ventuellement des espaces ou tabulations qui pourraient avoir �t� ajout�es entre = et CRLF et qu'il faut ignorer). Aussi, � moins d'�tre s�r qu'on ne t'envoie que de l'UTF-8 et que du quoted-printable, il pourrait �tre sage de traiter aussi le cas des autres charsets et celui du base64. > Autre interrogation, je suppose que les ent�tes (headers) d'un article > sont syst�matiquement en iso-8859-1 sauf le sujet qui peut �tre en UTF-8 > Quoted-Printable. J'ai bon ? Ah non, certainement pas. Les diff�rentes normes de l'IETF �voluent de plus en plus pour accepter l'UTF-8 l� o� avant il n'y avait que de l'US-ASCII, mais l'ISO-8859-1 brut n'a jamais �t� accept� en standard dans des ent�tes de courriel ou de news (m�me si au d�but de usenet-fr c'�tait tol�r� � d�faut de meilleure solution). La meilleure solution n'est arriv�e qu'en 1996 (apr�s des balbutiements en 1993) sous la forme du RFC 2047 : <https://datatracker.ietf.org/doc/html/rfc2047>. > Vous l'aurez compris, j'ai besoin qu'on me raffraichisse la m�moire sur > comment d�coder tout ce fatras. Un lien vers une documentation, voire > des exemples, seraient bienvenus. Puisque c'est en python, inutile de r�inventer la roue. Utilise les packages standards qui font tout �a tr�s bien : <https://docs.python.org/3/library/email.html> [suivi fr.comp.lang.python] -- Olivier Miakinen