ArcPy是一個很香的地理空間數據庫處理模塊,但它必須依賴ArcGIS和Python環境,由於常用的ArcGIS版本默認支持的是Python2.7,它對中文支持並不好,因此,編碼問題是入門時必須解決的問題。
這里不細說ASCII、GB2312、Unicode、UTF-8的區別,可自行百度之;Python2和Python3系統默認編碼分別是ASCII和UTF-8。往往編寫的腳本能正常執行,但制作成共享的ToolBox工具就報編碼問題:EOL while scanning string literal
這是因為代碼中包含了中文,而編碼不能正確識別,以至於最初想到的解決方案是全寫英文注釋和字符串。
解決方案
通過設置編碼,可正常使用中文進行注釋和消息輸出。
分享下面的解決方案給大家:
(1)文件中包含中文,首先編碼必須支持,在py 文件最前面指定編碼;
# -- coding:cp936 –
(2)文件保存的編碼必須以ANSI,即系統默認編碼保存,使用UTF-8編碼的中文不會被系統默認編碼(cp936)所識別。
注意:使用vs code等編輯器保存py文件時,注意編碼的選擇。