2015-10-17 133 views
0

我在Python 2.7的程序執行以下操作:(在非英語字符如希伯來語,英語)如何unicode字符串解碼爲Unicode值

  1. 向用戶提供輸入
  2. 斯普利特各列表中的句子的特徵。 (輸入可以是小段落或電子郵件)
  3. 將字符轉換爲Unicode值。所以最後,列表中的每一項都是一個unicode轉義字符,例如"u/0391"可以將它作爲字符串來操作。

Ι開始相當好,但我不能拆分數組中的字母也不打印正確的unicode值。

Gr_text = unicode(raw_input("Type your message below:\n"), 'unicode-escape') 

Gr = Gr_text.split() 

print Gr 

示例輸入:

Ενααπλοπαραδειγμα。

輸入(翻譯爲「一個簡單的例子」)是用希臘語言沒有語調。這句話應該在列表中變換爲

['\u0395', '\u03bd', '\u03b1','\u0020', '\u03b1', '\u03c0', '\u03bb', '\u03bf','\u0020', '\u03c0', '\u03b1', '\u03c1', '\u03b1', '\u03b4', '\u03b5', '\u03b9', '\u03b3', '\u03bc', '\u03b1','\u0020',] 

指出我也想轉換空格和特殊字符。 然後,我將列表中的每個字母都作爲unicode字符串,而不是簡單的字母,因此我可以操縱並賦予其他值。

+1

請把輸入的例子和相應的預期的結果。 –

+0

你需要考慮你正在做的事情的順序,並且意識到Python 2.7不輸入Unicode字符 - 你需要使用'decode'。 –

回答

0

我已經測試過這個,它適用於我,但你的里程可能會有所不同。

import sys, locale 

Gr_text = raw_input('Type your message below:\n').decode(sys.stdin.encoding or locale.getpreferredencoding(True)) 

Gr = Gr_text.split() 

print Gr 


「充分披露」歸功於https://stackoverflow.com/a/477496/1427800

+0

謝謝你,但你錯過了一些東西。我想操縱列表中某個單詞的每個字母。當i型'對於i中的Gr: \t對於x在I: \t \t H = unicode的(X) \t \t manipulate_every_unicode字母()'不能在STR h讓Unicode值。 – GeorgeG