当前位置: 代码迷 >> 综合 >> ArcGIS10.2+ 解决shp文件属性表中文乱码问题
  详细解决方案

ArcGIS10.2+ 解决shp文件属性表中文乱码问题

热度:20   发布时间:2024-01-14 06:17:48.0

ArcGIS 10.2以后,shp文件属性表或者导出的表格中文会有乱码的情况,如下图所示

解决方案:

用管理员权限打开命令提示符,在CMD命令行中,输入以下命令:

reg add HKEY_CURRENT_USER\Software\ESRI\Desktop10.4\Common\CodePage /v dbfDefault /t REG_SZ /d 936 /f

版本按照自己安装的写对应的即可

问题分析:此时将会新建Common 项,在Common项下面新建 CodePage项,在CodePage项中(注册表右侧)添加一个字符串(REG_SZ),名称: dbfDefault,健值:969,这是因为ArcGIS默认通过读取系统的代码页(CodePage)来确定文件编码的(或者是根据操作系统语言来判断的),中文系统一般采用GBK的编码方式,因此中文系统下,生成的shapefile文件都是以GBK来编码其中的字段属性的,如果dbf不是GBK编码就会出现乱码问题。

1、中文系统一般采用GBK的编码方式,因此中文系统下,生成的shapefile文件都是以GBK来编码其中的字段属性的,如果dbf不是GBK编码就会出现乱码问题。解决方式如下:
http://www.cnblogs.com/liweis/p/4629265.html?

2、官方给的建议是:使用支持统一码(unicode)的文件地理数据库(file geodatabase)保存文件,这样就避免乱码,不用修改注册表了

        其实解决方法很简单,在10.1之后arcmap会先读取.cpg文件来判断文件的编码,如果没有.cpg文件,10.1之前的版本就会把系统的默认编码当做文件编码来用,10.1之后的会用utf编码去读取,而多数dbf的编码都是gpk编码,所以就会有乱码。
        只需要增加一个.cpg文件就行了。文件里面就只定义了dbf所使用的编码格式,如:GBK,GB2312,UTF-8等,一般来说你只要在cpg文件里面写GBK或GB2312,然后再用arcmap打开就不会有乱码的