arcgis10.2以后,shp文件屬性表中文會有亂碼的情況
解決方法
解決方法:在Cmd命令行中輸入以下命令:
reg add HKEY_CURRENT_USER\Software\ESRI\Desktop10.3\Common\CodePage /v dbfDefault /t REG_SZ /d 936 /f
版本找對應的該就行,10.2 10.3 10.4 10.5
問題分析:此時將會新建Common 項,在Common項下面新建 CodePage項,在CodePage項中(注冊表右側(cè))添加一個字符串(REG_SZ),名稱: dbfDefault,健值:969,這是因為ArcGIS默認通過讀取系統(tǒng)的代碼頁(CodePage)來確定文件編碼的(或者是根據(jù)操作系統(tǒng)語言來判斷的),中文系統(tǒng)一般采用GBK的編碼方式,因此中文系統(tǒng)下,生成的shapefile文件都是以GBK來編碼其中的字段屬性的,如果dbf不是GBK編碼就會出現(xiàn)亂碼問題。
2、官方給的建議是:使用支持統(tǒng)一碼(unicode)的文件地理數(shù)據(jù)庫(file geodatabase)保存文件,這樣就避免亂碼,不用修改注冊表了
其實解決方法很簡單,在10.1之后arcmap會先讀取.cpg文件來判斷文件的編碼,如果沒有.cpg文件,10.1之前的版本就會把系統(tǒng)的默認編碼當做文件編碼來用,10.1之后的會用utf編碼去讀取,而多數(shù)dbf的編碼都是gpk編碼,所以就會有亂碼。
只需要增加一個.cpg文件就行了。文件里面就只定義了dbf所使用的編碼格式,如:GBK,GB2312,UTF-8等,一般來說你只要在cpg文件里面寫GBK或GB2312,然后再用arcmap打開就不會有亂碼的