簡體   English   中英

迭代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)

輸出:

文本
文
本

from type to : 你應該將類型轉換為

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

我使用的代碼就是這個

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

對於python 3,這是有效的:

import unicodedata

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM