关于Shapefile乱码问题

【问题】:
在10.2.1、10.3版本读取10.2及之前版本ArcGIS创建的Shapefile,属性表中的汉字会出现乱码,该如何解决?

【原因】:
这个问题的根本原因就是读取文件使用的编码类型和文件实际存储的编码类型不一致。

【解决方法】:
ArcGIS 10.2.1之前版本,Shapefile根据Locale进行编码,可以直接按照dbfDefault设置方法到注册表中修改。
设置方法请参考:http://zhihu.esrichina.com.cn/article/79

ArcGIS 10.2.1及之后版本,Shapefile采用的是utf-8编码,在shapefile子文件旁边创建个记事本,修改为同名的CPG文件,文本内容oem或者936。
设置方法请参考:http://zhihu.esrichina.com.cn/article/32

【注意】:
ArcGIS Desktop 10.2.1 和 10.2.2 版本下修改编码行为,需要先打补丁,然后再按照dbfDefault设置方法到注册表中修改。

10.2.1补丁包:
http://support.esri.com/en/downloads/patches-servicepacks/view/productid/160/metaid/2090
10.2.2补丁包:
http://support.esri.com/en/downloads/patches-servicepacks/view/productid/67/metaid/2089

【备注】:

  • ArcGIS会先读取DBF头文件LDID中的编码,然后是CPG文件,最后是CodePage。
  • 如果不知道Shapefile的编码类型,可以使用程序检测(http://zhihu.esrichina.com.cn/article/32),通过ID,查询编码表中的编码进行对应。如果ID没有在编码表中,那么无法确定Shapefile使用的是什么编码,只能靠猜,猜对概率不大。

【扩展阅读】:

浅谈文字编码和Unicode
http://www.fmddlmyy.cn/text16.html
http://www.fmddlmyy.cn/text17.html

谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词
http://www.fmddlmyy.cn/text6.html

谈谈Windows程序中的字符编码
http://www.fmddlmyy.cn/text7.html

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值