[Python-3000] Displaying strings containing unicode escapes

Nick Coghlan ncoghlan at gmail.com
Wed Apr 16 16:53:02 CEST 2008


Oleg Broytmann wrote:
> On Wed, Apr 16, 2008 at 11:21:26PM +1000, Nick Coghlan wrote:
>> You get:
>>
>>  >>> "тест"
>> 'тест'
>>  >>> open("тест")
>> Traceback (most recent call last):
>>    File "<stdin>", line 1, in <module>
>>    File "/home/ncoghlan/devel/py3k/Lib/io.py", line 212, in __new__
>>      return open(*args, **kwargs)
>>    File "/home/ncoghlan/devel/py3k/Lib/io.py", line 151, in open
>>      closefd)
>> IOError: [Errno 2] No such file or directory: 'тест'
> 
>    Very well, then. Thank you! The code should be put in a cookbook or the
> wiki, if not in the library.
> 

Unfortunately, it turns out that the trick also breaks display of 
strings containing any other escape codes. For example:

 >>> '\n'
'
'
 >>> '\t'
'       '

The unicode_escape codec is interpreting all of the escape sequences 
recognised in Python strings, not just the \u sequences we're interested in.

I can't see an easy way around this at the moment, but I'm still 
reasonably convinced that the issue of Unicode escapes for non-ASCII 
users is best attacked as a display problem rather than an internal 
representation problem.

Cheers,
Nick.

-- 
Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia
---------------------------------------------------------------
             http://www.boredomandlaziness.org


More information about the Python-3000 mailing list