我遇到了使用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)和编解码器,但仍然无法获得任何好的结果。这似乎是一个简单的问题,但令我感到非常困难。
希望有人能指出我正确的方向。
谢谢!
答案 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)