Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 1807916
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 17, 20262026-05-17T06:11:51+00:00 2026-05-17T06:11:51+00:00

I did some script in python that connects to GMAIL and print a email

  • 0

I did some script in python that connects to GMAIL and print a email text… But, often my emails has words with “accent”. And there is my problem…

For example a text that I got: “PLANO DE S=C3=9ADE” should be printed as “PLANO DE SAÚDE”.

How can I turn legible my email text? What can I use to convert theses letters with accent?

Thanks,


The code suggested by Andrey, works fine on windows, but on Linux I still getting the wrong print:

>>> b = 'PLANO DE S=C3=9ADE'
>>> s = b.decode('quopri').decode('utf-8')
>>> print s
PLANO DE SÃDE

Rafael,

Thanks, you are correct about the word, it was misspelled.
But the problem still the same here. Another example:
CORRECT WORD: obersevação

>>> b = 'Observa=C3=A7=C3=B5es'
>>> s = b.decode('quopri').decode('utf-8')
>>> print s
Observações

I am using Debian with UTF-8 locale:

>>> :~$ locale
LANG=en_US.UTF-8

Andrey,

Thanks for your time. I agree with your explanation, but still with same problem here. Take look in my test:

   s='Observa=C3=A7=C3=B5es'
   s2= s.decode('quopri').decode('utf-8')

   >>> print s

   Observa=C3=A7=C3=B5es

   >>> print s2

   Observações

   >>> import locale

   >>> ENCODING = locale.getpreferredencoding()

   >>> print s.encode(ENCODING)
   Observa=C3=A7=C3=B5es

   >>> print s2.encode(ENCODING)
   Observações

   >>> print ENCODING
   UTF-8
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-17T06:11:51+00:00Added an answer on May 17, 2026 at 6:11 am

    This encoding is called Quoted-printable. In your example, you have a string (Python’s unicode) encoded in UTF-8 bytes (Python’s str) encoded in quoted printable bytes. So the right way to get a string value is:

    >>> b = 'PLANO DE S=C3=9ADE'
    >>> s = b.decode('quopri').decode('utf-8')
    >>> print s
    PLANO DE SÚDE
    

    Update: There might be some issues with the console conding though. s holds a fully correct Unicode string value (of Python type unicode). But when you use the print statement, the value must be converted to bytes (Python’s str) in order to be written to OS file descriptor number 1 (the standard output pipe). So the print statement implementation checks your console encoding, then makes some guesses and prints the results. In fact, in Python 2 the results will be different for printing from the interactive shell, running your process non-interactively and running your process while redirecting the output to a file.

    The best way to output encoded strings in Python 2 is not agreed upon. Two ways that make most sense are:

    1) Use locale‘s encoding guess and manually encode strings.

    import locale
    ENCODING = locale.getpreferredencoding()
    
    print s.encode(ENCODING)
    

    2) Use an encoding option (command-line, hard-coded or whatever).

    from getopt import getopt
    ENCODING = 'UTF-8'
    opts, args = getopt(sys.argv[1:], '', ['encoding='])
    for opt, arg in opts:
        if opt == '--encoding':
            ENCODING = arg
    
    print s.encode(ENCODING)
    

    Update 2: If nothing helps and you still sure that your console encoding and font are set to UTF-8, then try this:

    import sys, os
    ENCODING = 'UTF-8'
    stdout = os.fdopen(sys.stdout.fileno(), 'wb')
    s = u'привет' # Don't forget to use a Unicode literal staring with u''
    stdout.write(s.encode(ENCODING))
    

    At this point you must see the Russian word привет in cyrillic character set in your console 🙂

    If this is the case, then you should use this binary stdout instead of normal sys.stdout.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I did some script in python that connects to GMAIL and print a email
I am having some problems with accents. I did a python script that are
I am playing around with vim and I heard that python.vim has some nifty
I have a python script that needs to do some communication with a C#
I did some research and found that the only way to vertically center a
I did some research but all I could find was syncing data core with
I did some changes and then did a commit. Then I realized that I
I did some research but couldn't find the answer I was looking for so
I have a python script which does a partial checkout. At some point I
I've encountered a behavior I did not expect when executing the following Python script

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.