ArcGIS10.2+ 解決shp文件屬性表中文亂碼問題

ArcGIS 10.2以後,shp文件屬性表或者導出的表格中文會有亂碼的情況,如下圖所示

解決方案:

用管理員權限打開命令提示符,在CMD命令行中,輸入以下命令:

reg add HKEY_CURRENT_USER\Software\ESRI\Desktop10.4\Common\CodePage /v dbfDefault /t REG_SZ /d 936 /f

版本按照自己安裝的寫對應的即可

問題分析:此時將會新建Common 項,在Common項下面新建 CodePage項,在CodePage項中(註冊表右側)添加一個字符串(REG_SZ),名稱: dbfDefault,健值:969,這是因爲ArcGIS默認通過讀取系統的代碼頁(CodePage)來確定文件編碼的(或者是根據操作系統語言來判斷的),中文系統一般採用GBK的編碼方式,因此中文系統下,生成的shapefile文件都是以GBK來編碼其中的字段屬性的,如果dbf不是GBK編碼就會出現亂碼問題。

1、中文系統一般採用GBK的編碼方式,因此中文系統下,生成的shapefile文件都是以GBK來編碼其中的字段屬性的,如果dbf不是GBK編碼就會出現亂碼問題。解決方式如下:
http://www.cnblogs.com/liweis/p/4629265.html​

2、官方給的建議是:使用支持統一碼(unicode)的文件地理數據庫(file geodatabase)保存文件,這樣就避免亂碼,不用修改註冊表了

        其實解決方法很簡單,在10.1之後arcmap會先讀取.cpg文件來判斷文件的編碼,如果沒有.cpg文件,10.1之前的版本就會把系統的默認編碼當做文件編碼來用,10.1之後的會用utf編碼去讀取,而多數dbf的編碼都是gpk編碼,所以就會有亂碼。
        只需要增加一個.cpg文件就行了。文件裏面就只定義了dbf所使用的編碼格式,如:GBK,GB2312,UTF-8等,一般來說你只要在cpg文件裏面寫GBK或GB2312,然後再用arcmap打開就不會有亂碼的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章