免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 6860|回复: 4
收起左侧

[经验共享] shapefile在ArcGIS 10.3中打开乱码的解决方法

[复制链接]

59

主题

4万

铜板

13

好友

地信学员

Rank: 12Rank: 12Rank: 12

积分
575
发表于 2017-10-20 17:11 | 显示全部楼层 |阅读模式
原因
这个问题的根本原因就是读取文件使用的编码类型和文件实际存储的编码类型不一致。

Shapefile文件的头文件(dBase Header)中,一般会包含shapefile使用的编码类型的信息,这个信息成为 LDID ( Language Driver ID),这样在使用应用程序打开 shapefile 的时候,应用程序就知道用何种编码类型去正确读取它,而不会发生乱码。 在 ArcGIS Desktop 生产的 shapefile 数据中通常会包含这项信息。在Shapefile的子文件中,有时我们还会发现同名 *.cpg 文件,文件中也存储了编码信息,用记事本打开,看到例如 utf-8。

二者被ArcGIS 识别的优先顺序是,LDID 优先于 CPG文件。也就是如果头文件中没有约定读shapefile的编码类型时,如果这时刚好有个CPG文件,那么ArcGIS就会使用这里的编码类型读取。

我们知道 shapefile 是个开放格式,只要你了解了数据规范,完全可以脱离ArcGIS自己生产出来。在Windows中文语言设置下,假设你自己写代码或者使用第三方的程序生产了shapefile,例如mapgis,默认使用 CP936(GBK)编码存储,但是无论粗心大意还是有意为之没有在数据头文件中约定“我用了936!”。如果是 ArcGIS 10.2 和之前的版本,那么没问题,ArcGIS 默认就是以这种方式识别,没有乱码。可是拿到 ArcGIS 10.2.1 ,ArcGIS 10.2.2,ArcGIS 10.3.x 这几个版本中发现乱!码!了!在缺失 LDID 和 CPG时,这几个版本默认使用 UTF-8 来读取 shapefile,这样必然乱码了。

解决方法
在shapefile子文件旁边创建个记事本,修改为同名的CPG文件,文本内容oem或者936。

shapefile在ArcGIS 10.3中打开乱码的解决方法

shapefile在ArcGIS 10.3中打开乱码的解决方法


这样 ArcGIS 10.2.1 、ArcGIS 10.2.2、ArcGIS 10.3.x 在读取的时候,就知道你的数据是这种编码类型存储的,从而按照正确的方式读取。

shapefile在ArcGIS 10.3中打开乱码的解决方法

shapefile在ArcGIS 10.3中打开乱码的解决方法


141

主题

982万

铜板

3万

好友

管理员

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

积分
621916
发表于 2017-10-20 17:12 | 显示全部楼层
谢谢分享!
回复

使用道具 举报

17

主题

3814

铜板

20

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
763
发表于 2017-10-21 15:04 | 显示全部楼层
:zt:zt:zt
该会员没有填写今日想说内容.
回复

使用道具 举报

0

主题

220

铜板

1

好友

实习生

Rank: 1

积分
4
发表于 2019-4-16 15:04 | 显示全部楼层
出现乱码的唯一解决途径,砸电脑     http://www.shiguanvip.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表