博客
关于我
ArcGIS数据编码
阅读量:153 次
发布时间:2019-02-28

本文共 960 字,大约阅读时间需要 3 分钟。

  • 前言

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中指定了错误的文件编码格式。

 

 

  • 参考资料

  • 测试数据

链接:密码:ecqt

链接: 密码:it0k

 

 

 

你可能感兴趣的文章
NC综合漏洞利用工具
查看>>
ndarray 比 recarray 访问快吗?
查看>>
ndk-cmake
查看>>
NdkBootPicker 使用与安装指南
查看>>
ndk特定版本下载
查看>>
NDK编译错误expected specifier-qualifier-list before...
查看>>
Neat Stuff to Do in List Controls Using Custom Draw
查看>>
Necurs僵尸网络攻击美国金融机构 利用Trickbot银行木马窃取账户信息和欺诈
查看>>
Needle in a haystack: efficient storage of billions of photos 【转】
查看>>
NeHe OpenGL教程 07 纹理过滤、应用光照
查看>>
NeHe OpenGL教程 第四十四课:3D光晕
查看>>
Neighbor2Neighbor 开源项目教程
查看>>
neo4j图形数据库Java应用
查看>>
Neo4j图数据库_web页面关闭登录实现免登陆访问_常用的cypher语句_删除_查询_创建关系图谱---Neo4j图数据库工作笔记0013
查看>>
Neo4j图数据库的介绍_图数据库结构_节点_关系_属性_数据---Neo4j图数据库工作笔记0001
查看>>
Neo4j图数据库的数据模型_包括节点_属性_数据_关系---Neo4j图数据库工作笔记0002
查看>>
Neo4j安装部署及使用
查看>>
Neo4j电影关系图Cypher
查看>>
Neo4j的安装与使用
查看>>
Neo4j(1):图数据库Neo4j介绍
查看>>