遍历 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'))
您应该将 word 从 string 类型转换为 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)
我在使用 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'))
您应该将 word 从 string 类型转换为 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)