[issue7649] "u'%c' % char" broken for chars in range '\x80'-'\xFF'

Ezio Melotti report at bugs.python.org
Thu Jan 7 02:08:00 CET 2010


New submission from Ezio Melotti <ezio.melotti at gmail.com>:

On Py2.x u'%c' % char returns the wrong result if char is in range '\x80'-'\xFF':
>>> u'%c' % '\x7f'
u'\x7f'  # correct
>>> u'%c' % '\x80'
u'\uff80'  # broken
>>> u'%c' % '\xFF'
u'\uffff'  # broken

This is what happens whit %s and 0x80:
>>> u'%s' % '\x80'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0x80 in position 0: ordinal
not in range(128)
>>> u'%c' % 0x80
u'\x80'

u'%c' % '\x80' should raise the same error raised by u'%s' % '\x80'.

----------
assignee: ezio.melotti
components: Interpreter Core, Unicode
messages: 97334
nosy: ezio.melotti
priority: high
severity: normal
stage: test needed
status: open
title: "u'%c' % char" broken for chars in range '\x80'-'\xFF'
type: behavior
versions: Python 2.6, Python 2.7

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue7649>
_______________________________________


More information about the Python-bugs-list mailing list