Edit - Since Python 3.3, the u''
literal works again, so the u()
function isn't needed.
The best option is to make a method that creates unicode objects from string objects in Python 2, but leaves the string objects alone in Python 3 (as they are already unicode).
import sys
if sys.version < '3':
import codecs
def u(x):
return codecs.unicode_escape_decode(x)[0]
else:
def u(x):
return x
You would then use it like so:
>>> print(u('u00dcnicu00f6de'))
ünic?de
>>> print(u('xdcnicN{Latin Small Letter O with diaeresis}de'))
ünic?de
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…