Least-lossy string.encode to us-ascii?

Mark Tolonen metolone at gmail.com
Thu Sep 13 22:09:38 EDT 2012


On Thursday, September 13, 2012 4:53:13 PM UTC-7, Tim Chase wrote:
> On 09/13/12 18:36, Terry Reedy wrote:
> 
> > On 9/13/2012 5:26 PM, Tim Chase wrote:
> 
> >> I've got a bunch of text in Portuguese and to transmit them, need to
> 
> >> have them in us-ascii (7-bit).  I'd like to keep as much information
> 
> >> as possible,just stripping accents, cedillas, tildes, etc.
> 
> > 
> 
> > 'keep as much information as possible' would mean an effectively 
> 
> > lossless transliteration, which you could do with a dict.
> 
> > {<o-with-accent>: 'o', <c-cedilla>: 'c,' (or pick something that would 
> 
> > never occur in normal text of the sort you are transmitting), ...}
> 
> 
> 
> Vlastimil's solution kept the characters but stripped them of their
> 
> accents/tildes/cedillas/etc, doing just what I wanted, all using the
> 
> stdlib.  Hard to do better than that :-)
> 
> 
> 
> -tkc

How about using UTF-7 for transmission and decode on the other end?  This keeps the transmission all 7-bit, and no loss.

    >>> s=u"serviço móvil".encode('utf-7')
    >>> print s
    servi+AOc-o m+APM-vil
    >>> print s.decode('utf-7')
    serviço móvil

-Mark



More information about the Python-list mailing list