ArcGis 屬性表.dbf文件使用Excel打開中文亂碼的解決方法


插個廣告,制作ArcGIS的Tool工具學習下面的教程就對了:
零基礎學習Python制作ArcGIS自定義工具觀看鏈接
《零基礎學習Python制作ArcGIS自定義工具》課程簡介

 

2019年4月 拓展:

ArcGis——好好的屬性表,咋就亂碼了呢?

 

2019年3月27日補充:

在ArcMap10.3+(根據官網描述應該是,作者測試使用10.5,可行)以后的版本,可以使用ArcToolbox工具導出Excel,而不出現亂碼。

工具位置ConversionTools——Excel——Table to Excel

.xls最大65536行,.xlsx最大1048576行

 

 

以下是原文:

 


 

ArcGis Shapefile文件的屬性表信息存儲於.dbf格式的文件之中,在 ArcGIS 10.2.1 之前的版本,創建 shapefile 的時候,其編碼類型是ANSI,編碼規則由操作系統的語言區域設置決定的,在中文操作系統下編碼方式是gbk,即936。 而從 ArcGIS Desktop 10.2.1 版本以及之后的版本,產生的shapefile是Unicode的,編碼規則是 UTF-8 。這個dbf格式的文件可以直接拖到一個打開的Excel文件中打開查看(可以修改,但不能保存,可以另存為Excel文件)。

 對於10.2.1之前版本ArcGis創建的dbf,即GBK編碼文件:

直接扔到Excel打開后,有時會出現中文字段亂碼的情況,就下圖的樣子。

這是什么原因呢?出現這種情況的原因一般是你的Excel跑到外國去了,對,它崇洋媚外了,不認識這個編碼了。

 解決方法

先去驗證一下,打開Excel——【文件】——【選項】——【語言】,看看編輯語言

糾正錯誤。選擇中文,點擊“設為默認值”,設定完成后重啟一下Excel。

看結果

 對於10.2.1以后的ArcGis版本

創建Shapefile默認使用UTF-8編碼,所以使用Excel是打開亂碼的,Excel認ANSI(中文系統下是GBK)。可以通過導出文本后轉換到Excel的方式解決。

為了使創建Shapefile文件默認編碼就采用GBK,可以通過安裝官方補丁的方式解決。安裝補丁后允許修改系統的注冊表默認代碼頁,將代碼頁值改掉就可以了。

Esri官方的說明是這樣的:This patch allows user sites to modify the default code page used in shapefiles to meet specific needs. At 10.2.1 the default code page was set to UTF-8 to be consistent with industry standards.

1、下載補丁

https://support.esri.com/zh-cn/downloads

進入上面鏈接指向的頁面,檢索關鍵詞“Shapefile Default Code Page Patch” ,下載對應版本的patch安裝。

 

 

2、修改注冊表

復制下面的批處理代碼,粘貼到文本文檔,然后把ArcGis版本改成安裝的版本,保存,將文件擴展名改為.bat,雙擊bat即可實現注冊表修改。

@ECHO OFF
IF "%1"=="" GOTO :EOF 
reg add HKEY_CURRENT_USER\Software\ESRI\Desktop10.2.2\Common\CodePage /v dbfDefault /t REG_SZ /d 936  /f


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM