解決ArcPy指令碼工具中文亂碼問題
阿新 • • 發佈:2020-10-17
ArcPy是一個很香的地理空間資料庫處理模組,但它必須依賴ArcGIS和Python環境,由於常用的ArcGIS版本預設支援的是Python2.7,它對中文支援並不好,因此,編碼問題是入門時必須解決的問題。
這裡不細說ASCII、GB2312、Unicode、UTF-8的區別,可自行百度之;Python2和Python3系統預設編碼分別是ASCII和UTF-8。往往編寫的指令碼能正常執行,但製作成共享的ToolBox工具就報編碼問題:EOL while scanning string literal
這是因為程式碼中包含了中文,而編碼不能正確識別,以至於最初想到的解決方案是全寫英文註釋和字串。
解決方案
通過設定編碼,可正常使用中文進行註釋和訊息輸出。
分享下面的解決方案給大家:
(1)檔案中包含中文,首先編碼必須支援,在py 檔案最前面指定編碼;
1 |
|
(2)檔案儲存的編碼必須以ANSI,即系統預設編碼儲存,使用UTF-8編碼的中文不會被系統預設編碼(cp936)所識別。
注意:使用vs code等編輯器儲存py檔案時,注意編碼的選擇。