ArcGIS Pro属性表乱码与字段名3个汉字解决方案大总结

01 背景

我们之前在使用ArcGIS出现导出Excel中文乱码及shp添加字段3个字被截断的情况,我们有以下应对策略:

推荐阅读:ArcGIS导出Excel中文乱码及shp添加字段3个字被截断?

那如果我们使用ArGIS Pro出现上述问题,该如何解决呢?

例如,我们要对下列的shp数据添加一个字段,字段名称为"建筑总面积",

当我们保存的时候

保存后,字段就被自动截断为三个字,

原因就是,shp的字段是名称是限制10个字符的,采用默认的utf-8的编码,一个汉字是3个字符,10个字符只能容纳3个汉字,如果我们把编码改为GBK,一个汉字占用2个字符,就可以最多容纳5个字符。

还有当我们打开一个shp发现属性表乱码时我们可以怎么解决?

02 解决方案

解决方案也很简单,和之前ArcGIS10.X系列的解决方案是一样的。

我们主要介绍4个方面的内容:

  1. cmd命令提示符更改注册表

  2. 注册表管理器手动更改注册表

  3. 修改无效的原因(cpg文件)

  4. 属性表乱码的解决

1 cmd命令提示符更改注册表

在开始搜索栏输入cmd,以管理员模式启动CMD(命令提示符):

输入如下代码:

ArcGIS Pro更改字符编码注册表语句:

复制代码
reg add HKEY_CURRENT_USER\Software\ESRI\ArcGISPro\Common\CodePage /v dbfDefault /t REG_SZ /d 936 /f

输入后按Enter

提示成功后重启ArcGIS Pro即可。

2 注册表管理器手动更改注册表

在开始搜索栏输入注册表管理器

找到

\HKEY_CURRENT_USER\SOFTWARE\ESRI\ArcGISPro\Common\CodePage

对dbfDefault右键选择修改为936

确定后重启软件即可

3 修改无效的原因(CPG文件

有时候我们在修改以上注册表的时候还是没能解决以上问题,那会是什么问题导致的呢?

我们这个时候可以观察,最初的shp的组成文件里面一般有一个cpg文件。

什么是cpg文件呢?.cpg 是shp文件组织结构的 可选文件,指定用于标识要使用的字符集的代码页。

参考下列:Shapefile 文件扩展名

复制代码
https://desktop.arcgis.com/zh-cn/arcmap/latest/manage-data/shapefiles/shapefile-file-extensions.htm

以记事本打开,显示为UTF-8。

所以问题就出在这里,即使哦们将系统的字符编码改为了936(GBK),但是数据本身指定了UTF-8的数据编码,所以出现了问题,这个时候我们只需要将数据重新导出数据一份就可以,新生成的数据将不再带有CPG文件,默认GBK的字符编码了。

新导出的数据不再有CPG文件

再去添加字段就可以了。

4 属性表乱码的解决

有时候我们在打开属性表后发现汉字显示乱码的情况。

第一步骤要做的就是如1、2步骤所述将系统的字符编码将UTF-8改为GBK,改完之后能解决最好,不能解决还是乱码,那会是什么原因引起的呢?这个时候大部分是由于先前的创建shp文件的时候是有cpg文件,在文件传输的过程中cpg文件丢失或者在cpg文件中指定了错误的编码。

如果是cpg缺失,你可以尝试新建一个和shp同名的txt记事本文件,然后输入编码:可以分别写入UTF-8936OEM 尝试,然后将文件的.txt后缀改为,cpg,这个时候只要指定了正确的字符编码,属性表就会恢复正常。

一般在我们修改了系统的默认字符为GBK后,属性表还是乱码的情况,且cpg文件丢失的情况那么一般原始shp的cpg的字符编码就是UTF-8 ,所以一般上上面写入编码时第一个就测试UTF-8的编码。

那如果是原来就存在cpg还是乱码的情况,一般就是cpg文件的编码指代错误,比如将编码指定为936,但是实际编码为UTF-8,这个时候打开cpg(记事本打开)直接将936改为UTF-8就好。

基本如上操作后属性表就恢复正常哦。

休息

一起来参加我们的系统学习吧

推荐阅读:

ArcGIS全系列实战视频教程------9个单一课程组合
4大遥感软件!遥感影像解译!ArcGIS+ENVI+Erdas+eCognition
ArcGIS10.X入门实战视频教程(GIS思维)
ArcGIS之模型构建器(ModelBuilder)视频教程
ArcGIS之遥感影像分类及成果应用视频课程
ArcPy结合数据驱动模块的批量制图
ArcGIS之Data Reviewer空间数据质量检查
相关推荐
AAIshangyanxiu16 小时前
全流程ArcGISPro空间分析、三维建模、可视化及Python融合应用技术
开发语言·python·arcgis pro·空间分析·三维建模
非科班Java出身GISer16 小时前
ArcGIS JS 基础教程(19):3D Tiles 图层
arcgis·arcgis js 倾斜·arcgis js倾斜摄影·arcgis 3dtiles·arcgis js 加载倾斜
梦想的初衷~3 天前
生态系统服务价值评估技术全解析:从数据预处理到InVEST与SolVES模型应用
arcgis pro·生态系统服务价值·invest碳模块·solves 4.0·价值当量因子法·环境变量分析
规划GIS会4 天前
CC工具箱使用指南:【修复OID字段】
arcgis pro sdk·arcgis pro
xiao5kou4chang6kai44 天前
GIS数据制备,空间分析与高级建模
arcgis·gis·空间数据
杨超越luckly5 天前
Agent应用指南:利用POST请求获取麦当劳门店位置信息
人工智能·arcgis·html·数据可视化·麦当劳
非科班Java出身GISer5 天前
ArcGIS JS 基础教程(18):SceneLayer 场景图层
arcgis·arcgis js 白膜·arcgis js 建筑·scenelayer 图层·arcgis js i3s
Li.map7 天前
CesiumJS 地图主题系统:用着色器打造实时滤镜
javascript·arcgis·cesium·着色器
中科GIS地理信息培训13 天前
【实操】在 ArcGIS Pro 中,计算多边形的面积时,需排除缓冲区要素中与多边形重叠的部分
arcgis·arcgis pro
中科GIS地理信息培训13 天前
ArcGIS Pro镶嵌数据集:绝不仅是数据之和
arcgis·arcgis pro