Strange problems with encoding

Rudy Schockaert rudy.schockaert at
Thu Nov 6 14:38:52 CET 2003

Sebastian Meyer wrote:

> Hi newsgroup,
> i am trying to replace german special characters in strings like
>     str = re.sub('ö', 'oe', str)
> When i work with this, i always get the message
> UniCode Error: ASCII decoding error : ordinal not in range(128)
> Yes i  have googled, i searched the faq, manual and python library and
> searched all known soruces of information. I played with the python
> builtin function encode to enforce the rigth encoding, but the error 
> stays the same. I ve read a lot about UniCode and internal conversion
> about Strings done by python, but somehow i ve missed the clue.
> Nope, python says Huuups... ordinal not in range(128), ;-(
> Anyone of you having any idea?? Seems like i am too stupid to read
> documentation carefully., perhaps i misunderstand something...
> thanks for your help in advance
> Sebastian

I'm experiencing something similar for the moment. I try to 
base64-encode Unicode strings and I get the exact same errormessage.

 >>> s = u'ö'
 >>> s
 >>> s.encode('base64')
Traceback (most recent call last):
   File "<interactive input>", line 1, in ?
   File "C:\Python23\lib\encodings\", line 24, in 
     output = base64.encodestring(input)
   File "C:\Python23\lib\", line 39, in encodestring
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in 
position 0: ordinal not in range(128)

When I don't specify it's unicode it works:
 >>> s = 'ö'
 >>> s
 >>> s.encode('base64')

The reason I want to base64-encode these unicode strings is because I 
get those as input and want to store them in a MySQL database using 

More information about the Python-list mailing list