python2中的unicode_在python 3和2中工作的Unicode文字
So I have a python script that I'd prefer worked on python 3.2 and 2.7 just for convenience.
Is there a way to have unicode literals that work in both? E.g.
#coding: utf-8
whatever = '????'
The above code would require a unicode string in python 2.x (u'') and in python 3.x that little u causes a syntax error.
解決方案
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('\u00dcnic\u00f6de'))
ünic?de
>>> print(u('\xdcnic\N{Latin Small Letter O with diaeresis}de'))
ünic?de
總結
以上是生活随笔為你收集整理的python2中的unicode_在python 3和2中工作的Unicode文字的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python2.7教程 pdf_PYTH
- 下一篇: 联网时win10电脑之间的内容共享win