随着电脑软硬件的升级,越来越多的从业人员使用的软件版本越来越高,比如ARCGIS软件,大部分人从以前使用的ARCGIS 8.3版本一直升级到最新的ARCGIS10.7版本。有些用户突然发现,我们原来在旧版本里面,对于SHP文件属性表新建属性字段的时候,字段名称可以使用10个英文字母,汉字可以使用5个,但在新版本中却只可以使用三个汉字了。

这个改变有时候会给我们的实际工作带来一些不方便,实际工作中有时候为了属性字段表达的直观性,大多数习惯使用中文来进行命名,一般都遵循5个汉字的原则。出现这个现象的原因是ARCGIS自10.2.1版本后,默认将SHP文件的编码采用UTF-8。在该编码下每个汉字至少需要3个字节来存储,但在CP936下,每个汉字只需要2个字节来存储。因此需要在注册表中对默认编码进行修改。

arcgis python数字转字符串 arcgis python计算字段_arcgis打开tif文件

一、输入“regedit”运行命令打开注册表文件或者通过其他第三方软件打开。通过“HKEY_CURRENT_USER\Software\ESRI\Desktop10.6”找到对应的ARCGIS版本。

arcgis python数字转字符串 arcgis python计算字段_arcgis 分区 属性值_02

arcgis python数字转字符串 arcgis python计算字段_arcgis导出shp文件_03

查看是否存在“Common”项,默认是不存在,需要用户自己新建。注意全是英文字母,不要写成数字0,否则更改后不起作用。

arcgis python数字转字符串 arcgis python计算字段_arcgis python数字转字符串_04

在“Common”下面继续新建项“CodePage”,如发现命名错误,鼠标右键可以删除或者重命名。

arcgis python数字转字符串 arcgis python计算字段_arcgis导出shp文件_05

在“CodePage”下,鼠标右键“新建/字符串值”,将新建的字符串值重新命名为“dbfDefault”,双击“dbfDefault”字符串值,在弹出界面输入“936”,实现对SHP文件默认编码的修改。

arcgis python数字转字符串 arcgis python计算字段_arcgis 分区 属性值_06

arcgis python数字转字符串 arcgis python计算字段_arcgis打开tif文件_07

arcgis python数字转字符串 arcgis python计算字段_arcgis导出shp文件_08

二、重新打开ARCGIS,新建一个图层,打开新建的图层,新建属性字段的时候,发现最多可以输入5个汉字。

arcgis python数字转字符串 arcgis python计算字段_arcgis导出shp文件_09

三、如果重新打开旧数据,此时新建属性字段,依然报错,解决办法是需要将新数据重新导出一下,如果不导出的时候,旧SHP文件采用的依然是创建时候默认的UTF-8编码。导出的时候可以导出到GEODATABASE数据库或者直接导出成SHP文件。

arcgis python数字转字符串 arcgis python计算字段_arcgis导出shp文件_10

arcgis python数字转字符串 arcgis python计算字段_arcgis打开tif文件_11

重新打开导出的shp文件,添加属性字段的时候,字段名称最多可以添加5个汉字。

arcgis python数字转字符串 arcgis python计算字段_arcgis python数字转字符串_12

实际工作中如果有些SHP文件打开中文汉字是乱码,多半也是由于编码原因造成的,一般建议安装ARCGIS高版本后,首先就是按照要求把注册表给修改了,毕竟在我们日常工作中使用汉字还是多余英文。