2012-11-28 54 views
2
>>> import sys 
>>> sys.version_info 
sys.version_info(major=2, minor=7, micro=2, releaselevel='final', serial=0) 

>>> import unicodedata 
>>> unicodedata.unidata_version 
'5.2.0' 

這意味着我的Python版本應該有Unicode 5.2.0。unicodedata.unidata_version打印錯誤的unicode版本?

,但是當我去list of newly added unicode chars in version 5.2.0和打印這樣的字符,它不認可:但是

>>> print u"\u0803" 
ࠃ 

Chars from 5.1.0被認可:

>>> print u"\u03CF" 
Ϗ 

所以我就應該總是下一個算一個版本實際上是由unicodedata.unidata_version輸出還是我誤解了一些東西?

回答

4

你很困惑你的終端可以打印什麼Python知道關於unicode字符。

您的終端字體無法識別這些代碼點。 Python可以處理它們就好:

>>> import unicodedata 
>>> unicodedata.category(u'\u0803') 
'Lo' 
>>> unicodedata.name(u'\u0803') 
'SAMARITAN LETTER DALAT' 
>>> unicodedata.category(u'\u03CF') 
'Lu' 
>>> unicodedata.name(u'\u03CF') 
'GREEK CAPITAL KAI SYMBOL' 

諷刺的是,使用我的瀏覽器不定義任何代碼點的圖像字體。您的文章顯示了我兩個佔位符字符:

two placeholder characters

+0

你真是個好心人。 – zenpoy

+0

順便說一句,你知道一個命令讓Linux檢查終端使用的unicode版本嗎? – Bentley4

+1

@ Bentley4:這是終端使用的*字體*,這是您的問題。 http://www.cl.cam.ac.uk/~mgk25/unicode.html能夠在這方面回答你的問題嗎? –