UnicodeEncodeError: 'ascii' codec can't encode character u'\xb7' in position 13: ordinal not in range(128)

akhil1988 akhilanger at gmail.com
Thu Jul 16 07:52:24 CEST 2009


Chris,

Using 

print (u'line: %s' % line).encode('utf-8')

the 'line' gets printed, but actually this print statement I was using just
for testing, actually my code operates on 'line', on which I use line =
line.decode('utf-8') as 'line' is read as bytes from a stream.

And if I use line = line.encode('utf-8'), 

I start getting other error like
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 4561:
ordinal not in range(128)
at line = line.replace('<<', u'«').replace('>>', u'»')


--Akhil

Chris Rebert-6 wrote:
> 
>> Chris Rebert-6 wrote:
>>>
>>> On Wed, Jul 15, 2009 at 9:34 PM, akhil1988<akhilanger at gmail.com> wrote:
>>>>
>>>> Hi!
>>>>
>>>> Can anyone please help me getting rid of this error:
>>>> UnicodeEncodeError: 'ascii' codec can't encode character u'\xb7' in
>>>> position
>>>> 13: ordinal not in range(128)
>>>>
>>>> I am not a python programmer (though intend to start learning this
>>>> wonderful
>>>> language), I am just using a python script.
>>>>
>>>> After doing some search, I found that 0xb7 is a 'middle dot character'
>>>> that
>>>> is not interpreted by the python.
>>>> Even after inserting text = text.replace('\u00b7', '') in the script,
>>>> the
>>>> problem still persists.
>>>>
>>>> Can anyone please tell me the easiest way to get rid of this?
>>>
>>> We'll need the full error traceback. The error message at the end is
>>> just not enough information.
>>> As to fixing it, google for "UnicodeEncodeError". You should find
>>> about a million mailinglist threads on it.
> On Wed, Jul 15, 2009 at 10:05 PM, akhil1988<akhilanger at gmail.com> wrote:
>>
>> Well,
>> All I get is this traceback:
>>
>> File "./customWikiExtractor.py", line 492, in ?
>>     main()
>> File "./customWikiExtractor.py", line 480, in main
>>    print >> sys.stdout, 'line: %s' % line
>> UnicodeEncodeError: 'ascii' codec can't encode character u'\xb7' in
>> position
>> 13: ordinal not in range(128)
>>
>> I am giving a string to the python code as input, and python processes it
>> like this:
>>
>> line = line.decode('utf-8').strip()
>>
>> After this when I do,
>> print >> sys.stdout, 'line: %s' % line
>> I get this Unicode error.
> 
> Try this instead (the ">> sys.stdout" part is redundant):
> print (u'line: %s' % line).encode('utf8')
> #if your system doesn't use UTF-8, change as necessary
> 
> Cheers,
> Chris
> -- 
> http://blog.rebertia.com
> -- 
> http://mail.python.org/mailman/listinfo/python-list
> 
> 

-- 
View this message in context: http://www.nabble.com/UnicodeEncodeError%3A-%27ascii%27-codec-can%27t-encode-character-u%27%5Cxb7%27-in-position-13%3A-ordinal-not-in-range%28128%29-tp24509879p24510519.html
Sent from the Python - python-list mailing list archive at Nabble.com.




More information about the Python-list mailing list