2016-08-22 49 views
1

Python版本後:3.5
OS版本:Windows7的蟒蛇輸入的EOFError組IO編碼爲UTF8

我設置環境變量PYTHONIOENCODING=utf-8後,我可以打印一些UTF8字符串(如愛情符號\ u2665,韓國話和日語字),如我所料。
(在此之前,我只能用gbk編碼輸入中文單詞,但其完全正常工作)。
但是現在我不能使用input()來獲取任何非字母數字字符,它會引發EOFError。

你好:♥・                    
Traceback (most recent call last):             
    File "codeTest2.py", line 9, in <module>           
    key = input('你好:')                
')                     
EOFError  





BTW: 當我使用 print()打印一些UTF8字符串,(這裏是中國人的話,字母,韓國的話,表情符和特殊字符)

s2 = '송하나 ♥ ♥・' 
print('作者id'+s2+'\n') 

終端打印:(一個奇怪的「倒錐形塔」)

作者id송하나 ♥ ♥・                 
나 ♥ ♥・                   
� ♥・                    
�・ 

回答

0

Wh你使用的是哪種編譯器和終端?

在Python 3.5 IDLE,這工作得很好:

key=input('輸入:') 

而且在Python 2.7 IDLE,這工作得很好:

key=raw_input('輸入:') 

但在崇高的文本3,我應該利用這個使用申報UTF-8:

# coding=u8 

所以,請給您的情況和代碼:)

+0

我使用VSCode集成終端和windows cmd.exe。 IDLE做得很好,但我仍然想知道如何解決這個問題。謝謝。 –

+0

我使用'python3 input_test.py'命名cmd.exe,它工作正常。究竟是什麼問題?你有使用'#coding = u8'嗎? – pingze

+0

添加'#coding = u8'後沒有什麼不同。我只能說我是在環境變量中更改了python io編碼。 –