遍历 Python 中的 unicode 字符串

Iterating through a unicode string in Python

我在使用 python.

逐个字符地遍历 unicode 字符串时遇到问题
print "w: ",word
for c in word:
    print "word: ",c

这是我的输出

w:  文本
word:  ? 
word:  ?
word:  ?
word:  ?
word:  ?
word:  ?

我想要的输出是:

文
本

当我使用 len(word) 时,我得到 6。显然每个字符都是 3 个 unicode 块。

所以,我的 unicode 字符串成功存储在变量中,但我无法取出字符。我试过使用 encode('utf-8')、decode('utf-8) 和编解码器,但仍然无法获得任何好的结果。这似乎是一个简单的问题,但对我来说却令人沮丧。

希望有人能给我指出正确的方向。

谢谢!

# -*- coding: utf-8 -*-
word = "文本"
print(word)
for each in unicode(word,"utf-8"):
    print(each)

输出:

文本
文
本

我使用的有效代码是这个

fileContent = codecs.open('fileName.txt','r',encoding='utf-8')
#...split by whitespace to get words..
for c in word:
        print(c.encode('utf-8'))

您应该将 wordstring 类型转换为 unicode:

print "w: ",word
for c in word.decode('utf-8'):
    print "word: ",c

对于 python 3 这是有效的:

import unicodedata

word = "文本"
word = unicodedata.normalize('NFC', word)
for char in word:
    print(char)