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

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打开就不会有乱码的

转载自:https://blog.csdn.net/Sdnu08gis/article/details/85161727

You may also like...