ArcGis 属性表.dbf文件使用Excel打开中文乱码的解决方法
转自:https://www.cnblogs.com/yzhyingcool/p/10267716.html
2019年3月27日补充:
在ArcMap10.3+(根据官网描述应该是,作者测试使用10.5,可行)以后的版本,可以使用ArcToolbox工具导出Excel,而不出现乱码。
工具位置ConversionTools——Excel——Table to Excel
.xls最大65536行,.xlsx最大1048576行
以下是原文:
ArcGis Shapefile文件的属性表信息存储于.dbf格式的文件之中,在 ArcGIS 10.2.1 之前的版本,创建 shapefile 的时候,其编码类型是ANSI,编码规则由操作系统的语言区域设置决定的,在中文操作系统下编码方式是gbk,即936。 而从 ArcGIS Desktop 10.2.1 版本以及之后的版本,产生的shapefile是Unicode的,编码规则是 UTF-8 。这个dbf格式的文件可以直接拖到一个打开的Excel文件中打开查看(可以修改,但不能保存,可以另存为Excel文件)。
对于10.2.1之前版本ArcGis创建的dbf,即GBK编码文件:
直接扔到Excel打开后,有时会出现中文字段乱码的情况,就下图的样子。
这是什么原因呢?出现这种情况的原因一般是你的Excel跑到外国去了,对,它崇洋媚外了,不认识这个编码了。
解决方法
先去验证一下,打开Excel——【文件】——【选项】——【语言】,看看编辑语言
纠正错误。选择中文,点击“设为默认值”,设定完成后重启一下Excel。
看结果
对于10.2.1以后的ArcGis版本
创建Shapefile默认使用UTF-8编码,所以使用Excel是打开乱码的,Excel认ANSI(中文系统下是GBK)。可以通过导出文本后转换到Excel的方式解决。
为了使创建Shapefile文件默认编码就采用GBK,可以通过安装官方补丁的方式解决。安装补丁后允许修改系统的注册表默认代码页,将代码页值改掉就可以了。
Esri官方的说明是这样的:This patch allows user sites to modify the default code page used in shapefiles to meet specific needs. At 10.2.1 the default code page was set to UTF-8 to be consistent with industry standards.
1、下载补丁
https://support.esri.com/zh-cn/downloads
进入上面链接指向的页面,检索关键词“Shapefile Default Code Page Patch” ,下载对应版本的patch安装。
2、修改注册表
复制下面的批处理代码,粘贴到文本文档,然后把ArcGis版本改成安装的版本,保存,将文件扩展名改为.bat,双击bat即可实现注册表修改。
@ECHO OFF IF "%1"=="" GOTO :EOF reg add HKEY_CURRENT_USER\Software\ESRI\Desktop10.2.2\Common\CodePage /v dbfDefault /t REG_SZ /d 936 /f
原文地址:https://www.cnblogs.com/photogis/p/11771289.html
- Jarvis-OJ平台多题WriteUp分享
- 会员提问 之 JS中的私有方法有什么意义?
- 本周末的QQ群视频--还是电商网站的事
- 【译】使用Apache的mod重写来保护你的C2 Empire
- 大白话,设计一个购物车对象
- 【译】Cromos – 下载并注入代码到谷歌 Chrome 浏览器扩展中
- X-NUCA 2017第三期 WriteUp
- 学习分享 | Flipped Ciphertext Bits
- 聊一下JavaScript定时器
- java redis 通用组建
- 学习分享 | Padding Oracle
- FastJson 反序列化注意事项
- Python编写渗透工具学习笔记二 | 0x05编写脚本劫持tcp会话
- linux下socket编程
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 使用ab和wrk对腾讯CLS进行benchmark测试
- 排序算法 --- 希尔排序
- 8086汇编语言——向显示缓冲区中写入数据
- 8086汇编语言——一个很骚的程序
- 8086汇编语言——交换寄存器中的内容
- 8086汇编语言——处理字符串
- 8086汇编语言——循环的使用
- axios api
- 中秋节到了,送你一个Python做的Crossin牌“月饼”
- Matlab系列之符号运算(上)(祝大家双节快乐~)
- qiankun vue3.0 保持组件状态 keep-alive 的使用
- 基于消息传递的并发模型
- 30行Python代码实现3D数据可视化
- Erlang入门路线
- unix domain socket