一、乱码原因(只想知道怎么操作的跳过)
ArcGIS从10.2.2版本开始,默认字符编码是UTF-8,其生成的shp文件会自动生成一个.cpg文件,这个.cpg文件一旦删除就会乱码。
ArcGIS版本10.2.2之前生成的shp文件编码是CP936,没有.cpg文件。这种shp文件是不会乱码的,即便按照UTF-8编码打开依旧不会乱码。
二、处理方法一:补充.cpg文件
新建一个文本文件,名称改成shp文件的名称,内容UTF-8,保存关闭,后缀改成.cpg
三、处理方法二:改变shp文件编码为CP936
有的项目,要求shp文件编码是CP936,就不能用上面的方法了,需要改变shp文件编码。
注意,直接修改.cpg文件的内容为CP936是不行的,中文依旧会是乱码。
- 关闭arcgis,修改注册表中arcgis的默认编码为936(详见四、修改注册表中arcgis的默认编码(使用命令))
- 用arcgis加载shp文件重新导出
四、修改注册表中arcgis的默认编码(使用命令)
如果不习惯用命令,也可以手动修改(详见六、修改注册表中arcgis的默认编码(手动操作))
1、Windows+R
2、cmd
3、复制下面代码粘贴后回车(红色部分根据实际情况修改)
reg add HKEY_CURRENT_USER\Software\ESRI\Desktop10.7\Common\CodePage /v dbfDefault /t REG_SZ /d 936 /f
4、检查注册表是否修改成功(详见五、检查注册表是否修改成功)
五、检查注册表是否修改成功
1.Windows+R
2.regedit
3.HKEY_CURRENT_USER\Software\ESRI\Desktop10.7\Common\CodePage\dbfDefault 的值是否是936
六、修改注册表中arcgis的默认编码(手动操作)
1.Windows+R
2.regedit
3.HKEY_CURRENT_USER\Software\ESRI\Desktop10.7
4.Common(没有就新建项取名Common),在Common项下面找CodePage项(没有就新建项),点击CodePage项,在注册表右侧找到dbfDefault(没有就添加一个字符串),健值:936
七、附
简体中文“.cpg文件”的值:CP936
UTF-8“.cpg文件”的值:UTF-8
简体中文注册表dbfDefault值:936或OEM
UTF-8 注册表dbfDefault值:UTF-8或者65001
注册表修改回UTF-8命令:reg add HKEY_CURRENT_USER\Software\ESRI\Desktop10.7\Common\CodePage /v dbfDefault /t REG_SZ /d 650001 /f