ArcGIS数据编码

  • 前言

arcgis10.2及以前是 936编码

arcgis 10.3及以后是utf-8编码

cpg文件是arcgis自主的编码定义文件,例如:

 

arcgis软件在创建数据时,会将数据编码的格式自动写在dbf文件首行;

如果没有写,那么会在在cpg文件中指明。

  • 正确编码的数据:

  • 出现dbf乱码的情景,两种:

第一种:数据本身是utf-8编码,但是用户在cpg文件中却指定成了936,那么就会出现乱码。

解决办法:在cpg文件将编码格式改成utf-8即可;

第二种:数据本身是utf-8编码,但是用户在cpg文件中指定成了936格式,同时还将错误编码的数据导出了。

解决方法:无。用了错误的编码方式读了现有编码,然后重写出来,数据就损坏了,错上加错。如下图:

例如:

 

  • 测试

拿到一份数据可以用参考资料中Python来测试这个数据的编码格式,如果显示 的是“0,0x0”,在编码表中没有找到对应的编码格式,则说明这份数据在dbf文件的首行没有写入文件的编码格式。

arcgis软件会自动写上,但是有的gis厂商不会写上,由于dbf和shp数据都是开源的,其它gis厂商,也支持生成shp数据,但是并不是所有的gis厂商都会在dbf中写入文件编码类型。

(1)测试一

10.6的shp数据——拷贝到——>10.2中,加载能够显示,没有出现乱码情况

文件编码写在了cpg文件中

 

(2)测试二

10.2的shp文件——拷贝到——>10.6中,加载能够显示,没有出现乱码情况

文件编码写在了dbf文件的文件头

结论:不管是10.2的936文件编码,还是10.6的utf-8编码,只要给数据以正确的编码都能在不同的arcgis版本中加载显示而且不出现乱码情况;

如果将10.2的shp数据,在10.6中给它在创建的cpg文件中指定成了utf-8编码不会出现乱码情况;

——>因为10.2生成的shp文件在dbf中已经在文件头给它指定了正确的编码格式,哪怕在cpg中指定了错误的文件编码格式也不会报错,因为先读dbf头文件。

10.6的shp文件在10.2的软件中给它在创建的cpg文件中指定成了936编码会出现乱码情况。——>因为在cpg中指定了错误的文件编码格式。

 

 

  • 参考资料

http://kikitamap.com/2015/12/21/TroubleshootingShapefile/

https://blog.csdn.net/kikitamoon/article/details/19116415

  • 测试数据

链接:https://pan.baidu.com/s/1QTxAqly7SP9Sy_brE5ONqQ 密码:ecqt

链接:https://pan.baidu.com/s/1xHHqE2UwLxS0ggeleBCaHw 密码:it0k

 

 

 

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ArcGIS数据编码是指将地理空间数据换为特定格式或编码的过程。ArcGIS是一款常用的地理信息系统软件,它支持多种数据编码方式,包括但不限于以下几种: 1. Shapefile编码:Shapefile是一种常见的地理空间数据格式,它由多个文件组成,包括.shp、.shx、.dbf等文件。Shapefile编码将地理要素的几何形状、属性信息以及空间索引等数据存储在这些文件中。 2. Geodatabase编码:Geodatabase是ArcGIS中的一种数据库格式,它可以存储多种类型的地理空间数据,包括点、线、面等几何要素,以及栅格数据、拓扑关系等。Geodatabase编码将地理空间数据存储在数据库表中,并使用特定的数据结构和索引进行管理。 3. KML编码:KML(Keyhole Markup Language)是一种用于描述地理信息的XML格式,它可以表示点、线、面等几何要素以及相关的属性信息。KML编码将地理空间数据以XML格式进行描述,并可以在ArcGIS中进行导入和导出。 4. GeoJSON编码:GeoJSON是一种基于JSON(JavaScript Object Notation)的地理空间数据格式,它可以表示点、线、面等几何要素以及相关的属性信息。GeoJSON编码将地理空间数据以JSON格式进行描述,并可以在ArcGIS中进行导入和导出。 这些是ArcGIS中常用的数据编码方式,每种编码方式都有其特定的优势和适用场景。在使用ArcGIS进行地理空间数据处理和分析时,可以根据具体需求选择合适的编码方式进行数据存储和转换。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值