2017-10-16 46 views
2

我想寫一個使用UTF-8信息的Python腳本,但我得到SyntaxError: Non-ASCII character消息。Python不接受UTF-8編碼

它看起來像我可以通過添加以下到我的腳本的頂部解決這個問題:

#!/usr/bin/python 
# coding: utf8 

,但我得到ascii當我運行此腳本:

#!/usr/bin/python 
# coding: utf8 
import sys 
print sys.getdefaultencoding() 

而且,我我試過了相同的結果:

#!/usr/bin/python 
# -*- coding: utf-8 -*- 

爲什麼我的腳本不使用UTF-8?

+2

該腳本將獲取運行編碼,註釋描述了源編碼。您應該發佈產生錯誤和特定錯誤的代碼示例,請參閱[mcve] – pvg

+1

您正在嘗試執行什麼操作? 「我試圖編寫一個使用UTF-8信息的Python腳本」非常含糊。 –

+1

你可能想看到[獲取魔術線/ shebang(從模塊內)指定的編碼](https://stackoverflow.com/questions/38374489/get-encoding-specified-in-magic-line-shebang-from-在模塊內部),你會在其中看到「請注意,sys.getdefaultencoding()'與Python源代碼的解碼方式無關。」 (Martijn Pieters,2016)。 – Kanak

回答

2

可以將其設置爲UTF-8:

import sys 
reload(sys) 
sys.setdefaultencoding("utf8") 
+0

我喜歡這個答案,因爲它提到了一個在文檔中經常被忽略的函數。 –

+0

'AttributeError:模塊'sys'在Python 3.6中沒有屬性'setdefaultencoding'' –