請幫助我,我嘗試了很多工藝的,但我不能在屏幕上做蟒紋UTF-8符號。Python的Unicode的終端輸出
我需要簡單地從一個UTF-8編碼的標準輸入流中讀取,數字符,在屏幕上打印它們的出現。
這裏是我的代碼:
import re
from collections import Counter
import sys
import codecs
sys.stdin = codecs.getreader('utf-8')(sys.stdin)
sys.stdout = codecs.getwriter('utf-8')(sys.stdout)
chars = re.findall(r'.', sys.stdin.read().lower())
counted_chars = Counter(chars).most_common(20)
print counted_chars
我想這
reload(sys)
sys.setdefaultencoding('utf-8')
但是,這是行不通的。我不斷地得到在屏幕上是這樣的:
(u'\u043e', 90)
和這些字符(U「\ u043e」)由於某種原因不顯示爲正常的字母。
但是,如果我在控制檯做以下操作:
>>> a = u'\u043e'
>>> print a
一切都很好,我也得到
我在做什麼錯? 請解釋我或我指向正確的鏈接。我已經被搜查了三個多小時,並沒有成功解決我的問題。
非常感謝。
''re.findall是沒用的這裏;一個unicode字符串本身就是一個序列。如果您想避免分割包含多個unicode代碼點的字符(例如''ё');你可以使用['regex.findall(UR '\ X',..)'](https://pypi.python.org/pypi/regex) – jfs 2013-05-10 02:07:23
不幸的是,nothing.The \ X轉義匹配任何一些Unicode的匹配形成擴展的Unicode序列的字符。但它是如何使用的? – xolodec 2013-05-10 04:05:55
1.點擊鏈接:'regex'不在stdlib([yet](http://www.python.org/dev/peps/pep-0429/))中,但它與're'向後兼容。 2.兩個圖案和輸入字符串應該是Unicode:'regex.findall(UR '\ X',u'ёлка')'。將它與're.findall(ur'。',u'ёлка')'進行比較。 (在源文件的頂部添加'# - * - coding:utf-8 - * - '以允許utf-8用字符串文字)。要打印它:'print「|」.join(result_of_findall)'。 – jfs 2013-05-10 04:20:42