2013-10-04 21 views
2

有沒有辦法轉換成表示Unicode代碼點爲Unicode字符(串)在Python中,在相同的轉換代碼可以同時在Python3 +和Python 2.7運行一個int。在向後兼容的方式轉換INT爲Unicode字符

所得字符串是Unicode字符串,無論是在PY3純字符串或使用「from __future__ import unicode_literals」在預PY3。

因此,我們希望:

i = 404 
c = chr_or_unichr (i) # this code is identical for different Python versions 

>>> c 
'Ɣ' 

回答

1

如何:

try: 
    chr = unichr # Python 2 
except NameError: 
    pass   # Python 3 

i = 404 
c = chr(i) # c is now 'Ɣ' regardless of Python version 

您還可以創建自己的函數名稱,如果你不希望覆蓋的Python 2的chr

+0

爲什麼CHR(32)不工作? – Venu

+0

我猜這是工作,但你正在做與你,讓你覺得這是不是字符串的東西。 ASCII(和Unicode)字符32是一個空格,所以像print(chr(32))這樣的東西將會打印出一個看起來像一個空白行,但實際上有一個不可見空間字符的東西。 – Blckknght