shapefile与字符集编码设置
在 ArcGIS Desktop (ArcMap, ArcCatalog, and ArcToolbox) 中,有编码页转换功能(CODE PAGE CONVERSION),可以读写多种字符编码的 shapefile 和 dBASE 表。在系统注册表中,编码页转换功能(CODE PAGE CONVERSION)命名为 'dbfDefault',可以修改这个值。
在 ArcGIS 10.2.1 之前,可以通过下面的方法来设置编码行为: 在 shapefile (.DBF) 的头文件中包含了引用的编码页,用来与用户的区域设置一致。例如,如果用户使用了日本的区域设置,那编码页是'Shft-JIS'。 在 ArcGIS 10.2.1 版本,shapefile (.DBF) 的编码页的默认设置为 UTF-8 (UNICODE) 。
ArcGIS Desktop 10.2.1 和 10.2.2 出补丁了,可以打上,如下类似的方法去修改: 10.2.1: http://support.esri.com/en/dow ... /2090 10.2.2: http://support.esri.com/en/dow ... /2089
'dbfDefault' 的作用
使用 ArcGIS for Desktop 打开 dBase 表文件时,程序先去读头文件中的 Language Driver ID (LDID) 或者是同名 *.CPG文件。前面二者都是用来在读文件之前,决定用什么编码类型来正确读出文件。如果有必要, ArcGIS for Desktop 会进行编码转换来显示字符串。
如果文件缺失 LDID 或者 .CPG 文件,编码就会被假定为 Windows (ANSI/Multi-byte)。也是因为这个原因,如果文件是 OEM 编码的,并且没有写入 LDID 或者 .CPG,字符就会出现乱码。 也就说 ArcGIS 把 OEM 文件当成 ANSI 文件来处理了。 多数情况下, shapefiles 和 dBASE 文件都会存储编码页信息。 但是有些程序的OEM文件没有包含编码页信息,例如 Microsoft Access 2000 and Excel 2000,所以这些文件读取时,就会乱码。为了避免这个问题,用户可以给没有编码页信息的文件设置dbfDefault 。
- 写: 在注册表中设置 'dbfDefault' ,可以决定导出的 shapefile 和 dBASE 的编码类型。例如,把 'dbfDefault' 设置为 OEM ,那么用 ArcMap, ArcCatalog, ArcToolbox 生成出来的 shapefile 和 dBASE 文件就是以 OEM编码的,设置成 ANSI ,那 shapefile 和 dBASE 文件就是 ANSI 编码的。
- 读: 读 shapefile 和 dBASE 文件的逻辑与写是相同的,如果缺失编码信息,ArcGIS 读取文件的编码类型由 dbfDefault 决定。
不适用'dbfDefault' 的情况:
'dbfDefault' 这项设置仅对 ArcGIS Desktop 生效,对于一些很老版本的ArcGIS 产品不适用;仅对 shapefile 生效,Personal GDB等不生效。
- 无视 'dbfDefault' 设置的包括:
In ArcInfo Workstation, ▪ ARCSHAPE with &CODEPAGE OEM creates a shapefile in OEM ▪ ARCSHAPE with &CODEPAGE ANSI creates a shapefile in ANSI ▪ INFODBASE with &CODEPAGE OEM creates a dBASE file in OEM ▪ INFODBASE with &CODEPAGE ANSI creates a dBASE file in ANSI In ArcView 3.x, ▪ Shapefile and dBASE files are saved in the ANSI code page. In ArcGIS for Desktop (regardless of the dbfDefault setting), ▪ Personal geodatabases are saved in Unicode ▪ Personal geodatabase tables are saved in Unicode ▪ Coverages are saved in the ISO code page ▪ INFO files are saved in the ISO code page ▪ Interchange files are saved in the ANSI code page ▪ Text files are saved in the ANSI code page
'dbfDefault' 设置方法 1.开始--运行,输入”Regedit“,打开注册表。 2.如是用的是 10.x 版本 ArcGIS Desktop,定位到” My Computer\HKEY_CURRENT_USER\Software\ESRI\Desktop 10.x' (如果是9.3.1之前的版本,定位到 'My Computer\HKEY_CURRENT_USER\Software\ESRI')。 3.创建项 'Common',接着创建 'CodePage'项,添加 ‘字符串’,名称: dbfDefault,健值:oem(或者UTF-8)。
如下为支持的编码值:
shapefile与字符集编码设置的更多相关文章
- MySQL字符集编码相关
Windows 10家庭中文版,MySQL 5.7.20,2018-05-07 Part.1 查找数据库的字符集编码 查看MySQL字符集编码:status命令 使用命令行登录MySQL服务器,然后 ...
- {MySQL数据库初识}一 数据库概述 二 MySQL介绍 三 MySQL的下载安装、简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 初识sql语句
MySQL数据库初识 MySQL数据库 本节目录 一 数据库概述 二 MySQL介绍 三 MySQL的下载安装.简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 ...
- CentOS6.8安装mysql并设置字符集编码
一.安装: 1. 首先以root用户进入系统 2. 输入命令: yum install mysql mysql-server -y 等待安装完成. 3. 启动MySQL,输入命令: /etc/init ...
- 为什么一定要调用 setlocale 呢? 因为在 C/C++ 语言标准中定义了其运行时的字符集环境为 "C" ,也就是 ASCII 字符集的一个子集。使用setlocal改变整个应用程序的字符集编码方式(wcstombs使用前要设置 setlocale (LC_ALL, "chs"); )
setlocale 配置地域化信息. 语法: string setlocale(string category, string locale); 返回值: 字符串 函数种类: 操作系统与环境 内容 ...
- mysql数据库字符集编码查看以及设置
show variables like %char% character_set_client | gb2312 character_s ...
- MySQL基础 - 编码设置
刚开始工作的时候,在工作中遇到的与数据库相关的问题,多半跟编码有关,总结一下数据库编码的设置. 字符集 查看数据库支持的字符集: mysql> SHOW CHARACTER SET; 从图中可以 ...
- 各种编码中汉字所占字节数;中文字符集编码Unicode ,gb2312 , cp936 ,GBK,GB18030
vim settings set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936,latin1set termencoding=utf-8se ...
- Oracle字符集的查看查询和Oracle字符集的设置修改
本文主要讨论以下几个部分:如何查看查询oracle字符集. 修改设置字符集以及常见的oracle utf8字符集和oracle exp 字符集问题. 一.什么是Oracle字符集 Oracle字符集是 ...
- iconv内容,convmv文件名,unix2dos,dos2unix文件格式转换,od/cut/wc/dd/diff/uniq/nice/du等命令,linux文件名乱码,文件名,文件内容,vim编码设置
1.enconv文件名编码转换,比如要将一个GBK编码的文件转换成UTF-8编码,操作如下 enconv -L zh_CN -x UTF-8 filename enconv -L GB2312 -x ...
随机推荐
- LINUX下IDEA等工具调试项目时提示:Unable to open debugger port
在Ubuntu下调试项目时使用TOMCAT容器,在设置好相应的TOMCAT LOCAL 路径及相关信息后,点击调试项目出现: Unable to open debugger port : java.n ...
- HDU 2200 Eddy's AC难题
解析: 1.可以从中任选m个人(n=>m>=2),有Cn(m)中选择; 2.再把这m个人分2组(每个人都要分组),要使满足最小ac数大于最大ac数,只需要在m个人中插板即可: 例如: m个 ...
- java 把被检查的异常转换为不检查的异常
一.当我们不知道该怎么处理这个异常,但是也不想把它"吞"了,或者打印一些无用的信息,可以使用异常链的思路解决.可以直接报"被检查的异常"包装进RuntimeEx ...
- 2018-2019-2 网络对抗技术 20165301 Exp2 后门原理与实践
2018-2019-2 网络对抗技术 20165301 Exp2 后门原理与实践 实验内容 (1)使用netcat获取主机操作Shell,cron启动 (2)使用socat获取主机操作Shell, 任 ...
- 第四届CCF软件能力认证
1.图像旋转 问题描述 旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度. 计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可. 输入格式 输 ...
- poj 1611 求0号结点所在集合的元素个数
求0号结点所在集合的元素个数 Sample Input 100 42 1 25 10 13 11 12 142 0 12 99 2200 21 55 1 2 3 4 51 00 0Sample Out ...
- Marriage is Stable HDU1522 稳定婚姻问题基础
几对男女 给出每个人心中的优先级 进行最合理的匹配 要打印名字的话必须有一个名字数组 英文名用map 稳定婚姻问题: 每次循环遍历所有的男的 每个男的对目前未被拒绝的并且优先级最高的进行预匹配 ...
- DSP 程序的执行时间
在访问TSCL寄存器前要定义 cregister volatile unsigned int TSCL; TSCL/TSCH,它们与CPU同频,共同表示一个64-bit数,CPU运行一个cycle,该 ...
- grid网格系统布局
grid布局: 基于网格的2维布局方法1:display: grid | inline-grid | subgrid作用:启用网格grid容器 grid:定义一个块级的网格容器 inline-grid ...
- BZOJ.3698.XWW的难题(有源汇上下界最大流ISAP)
题目链接 按套路行列作为两部分,连边 \(S->row->column->T\). S向代表行的元素连边cap(A[i][n])(容量上下界为上下取整),代表列的元素向T连边cap( ...