迭代Python

时间:2015-06-22 03:09:04

标签: python unicode python-2.x

我遇到了使用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)和编解码器,但仍然无法获得任何好的结果。这似乎是一个简单的问题,但令我感到非常困难。

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

谢谢!

4 个答案:

答案 0 :(得分:14)

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

输出:

文本
文
本

答案 1 :(得分:2)

你应该将 word string 类型转换为 unicode

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

答案 2 :(得分:1)

我使用的代码是这个

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

答案 3 :(得分:0)

对于python 3,这是可行的:

import unicodedata

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