2013-08-22 65 views
1

我的開發環境是:eclipse + pydev。如何使用raw_input獲取漢字

如果我使用raw_input()來獲得角色,我輸入「你好世界」,然後我得到「使用權」。那我怎樣才能得到「你好世界」並正確地打印出來。

我試過raw_input()。decode(sys.stdin.encoding),但結果是一樣的。

+1

你究竟是如何得到'作用'的? IE,你在哪裏找到該結果 – TerryA

+1

在[1]:S =的raw_input() 你好世界 在[2]:打印s.decode( 'UTF-8') 你好世界 在[3 ]:print s.decode('gbk') 開始使用 – iMom0

+0

你到目前爲止使用的代碼是什麼?這是在python終端,我猜? – icedwater

回答

3

使用終端/控制檯的代碼頁解碼。

import sys 

t = raw_input().decode(sys.stdin.encoding) 
print t 
+0

它不起作用〜 – woodenhead

+0

@ user2705767:如果這不起作用,那麼它可能是您的終端仿真器設置或您的鍵盤語言設置是borken。終端在輸入時回顯的是什麼? –

0

檢查您正在使用的編碼。根據@imom0's comment,我去了並嘗試gbk編碼。具體地說,這是我的Python 2.7.3經由ibus解釋器使用UTF-8編碼輸入:

>>> print raw_input().decode('gbk') 
你好世界 
浣犲ソ涓栫晫 
>>> print raw_input().decode('utf-8') 
你好世界 
你好世界 

這是試圖將UTF-8編碼的字符串作爲gbk解碼結果。由於您的輸入似乎是某種形式的UTF,爲什麼不執行utf-8解碼或使用輸入的編碼來解碼它,如@ignacio-vazquez-abrams' answer

import sys 

print myString.decode(sys.stdin.encoding) 
+0

我的IDE是eclipse + pydev,它似乎不起作用。 – woodenhead

+0

感謝您的回覆。請編輯問題以更新什麼不起作用以及您看到的內容。 – icedwater