在ArcGIS中打开shp文件时出现的中文乱码,核心原因是文件编码与软件读取设置不匹配,常见于较新版本(如10.2及以上)的ArcGIS打开早期以GBK编码创建的shp文件。

1

问题的根源

 乱码往往发生在软件默认用UTF-8读取,但数据实际上是GBK编码的情况下。在你的.shp文件中会存在CPG文件。我们可以通过记事本打开查看(如下图所示)。注册表设置 (dbfDefault)是ArcGIS软件自身读取shp文件的默认编码规则。当shp文件自身没有明确的编码信息(即缺少CPG文件和正确的LDID)时,软件就会使用这个默认设置。

CPG文件:一个可选的文本文件,与你的.shp文件同名(例如 A.cpg),用来明确告诉ArcGIS这个shp文件使用何种编码(如UTF-8或GBK)。

2

解决方案

方案一:创建/补充CPG文件
首先将数据进行备份,保持好习惯。这是最安全、最直接的解决方案。例如,如果你的shp文件名为A.shp:打开记事本,新建一个空白文件。分为以下两种情况:
  1. 如果数据来自较新的ArcGIS版本或QGIS等开源软件,很可能为UTF-8,则输入:UTF-8。
  2. 如果数据是ArcGIS 10.2以前版本创建的旧数据,很可能为GBK,则输入:936 或 GBK
点击“另存为”,将文件命名为 A.cpg,保存类型选择“所有文件(.)”,编码选择“UTF-8”(为了确保CPG文件本身不乱码)。将这个.cpg文件放到和你的.shp、.dbf等文件同一目录下。关闭ArcGIS中已打开的数据,重新加载shp文件,查看乱码是否解决。记住一定要重新启动。
方案二:修改ArcGIS默认编码(修改注册表)
此方法将ArcGIS读取shp的默认编码设置为与中文GBK编码兼容的936。
⚠️重要警告:修改注册表前,请务必通过“文件”->“导出”备份相关注册表项,或创建系统还原点。
首先,按下 Win + R 键,输入 regedit 并回车,打开注册表编辑器。
这里面一共有6个文件,你先选择第二个,导航到以下路径(请将路径中的 10.x 替换为你实际的ArcGIS版本号,如 10.8):
HKEY_CURRENT_USER\Software\ESRI\Desktop10.8
右键点击Desktop10.8,-> 新建 -> 项 ->Common。
在Common项下,右键点击Common -> 新建 -> 项,并将其命名为 CodePage。

选中新建的 CodePage 项,在右侧空白处右键 -> 新建 -> 字符串值,将其命名为 dbfDefault
双击 dbfDefault,将其“数值数据”修改为 936,然后点击“确定”。
关闭注册表编辑器,重启ArcGIS,再打开之前的shp文件就可以解决这个问题了。我们通过导出dbf表用Excel打开查看没有问题。ArcGIS Pro也可以用这种方法解决。
操作视频:

本公众号内容均来源于互联网,旨在提供学习交流之用。所有资料的版权归原作者或版权方所有,本公众号不承担任何版权责任。若原作者或版权方认为存在侵权行为,请及时联系我们,我们将立即删除相关内容,以维护版权方的合法权益。感谢您的理解与支持!


往期推荐


如何利用南方CASS计算两期土方量?

测绘类项目支出标准(2023年)可以下载

“多测合一”项目的基本规定

“多测合一”—立项用地规划许可阶段测量

“多测合一”—工程规划许可与施工阶段(1)

“多测合一”—工程规划许可与施工阶段(地下管线探测)

“多测合一”—建设工程放线定位核验测量和正负零核验测量

“多测合一”—房产面积预测绘

“多测合一”—竣工测绘(一)

“多测合一”—竣工测绘(二)

“多测合一”—不动产测绘

Global Mapper使用教程

欢迎大家关注点赞收藏,感谢您的大力支持