2012-12-29 41 views
49

我想切換python3。我相信默認情況下是utf8編碼。我還應該在開始時使用編碼聲明每個文件嗎?我應該在Python3中使用編碼聲明嗎?

# -*- coding: utf-8 -*- 
+0

默認*爲什麼*? – delnan

+0

假設python語言。 –

+0

這很明顯。我的意思是,你認爲UTF-8編碼的目的是什麼?有很多地方出現編碼問題:文件I/O,網絡,其他I/O,源代碼,衆多內存數據結構等。 – delnan

回答

51

因爲默認 UTF-8,你只需要在你從默認的偏離使用該聲明,或者如果你依賴其他工具(如您的IDE或文本編輯器),以利用那個信息。

換句話說,就Python而言,只有當你想使用不同的編碼時,你才必須使用該聲明。

請注意,它只適用於Python如何讀取源代碼。它不適用於打印,打開文件或任何其他I/O操作。有關Python,Unicode和編碼的更多詳細信息,我強烈建議您閱讀Ned Batchelder的Python Unicode HOWTO或非常全面的Pragmatic Unicode talk

+19

在編輯源文件時,'# - * - coding:utf-8 - * - '對於某些編輯者來說可能會切換到預期的編碼。 – pepr

+0

@pepr字節順序標記可以做同樣的事,不是嗎? – endolith

+1

@endolith:UTF-8物料清單是Microsoft在這個地球上所憎惡的。請參閱https://en.wikipedia.org/wiki/Byte_order_mark#UTF-8 –

相關問題