1. 程式人生 > 實用技巧 >解決ArcPy指令碼工具中文亂碼問題

解決ArcPy指令碼工具中文亂碼問題

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

# -- coding:cp936 –

(2)檔案儲存的編碼必須以ANSI,即系統預設編碼儲存,使用UTF-8編碼的中文不會被系統預設編碼(cp936)所識別。

注意:使用vs code等編輯器儲存py檔案時,注意編碼的選擇。