发布网友
共1个回答
热心网友
在 ArcGIS Desktop 中,shapefile 文件属性表出现中文乱码通常是由于字符编码问题引起的。在 ArcGIS 10.2.1 之前,可以通过修改注册表来解决这个问题,而之后的版本则默认使用 UTF-8 编码,通过修改 CPG 文件来调整编码格式。本文将重点介绍如何通过 CPG 文件来修改编码格式。
中文乱码出现的原因在于 ArcGIS 在打开 shapefile 和 dBASE 文件时,会查看文件头部的语言驱动程序 ID (LDID) 或关联的 *.CPG 文件来确定字符编码。如果没有找到相应的编码信息,ArcGIS 将默认使用 Windows(ANSI/多字节)代码页,导致字符无法正确显示。
针对缺少 CPG 文件的情况,在 ArcGIS 10.2.1 及以后的版本中,可以手动创建一个与 shapefile 文件同名的 CPG 文件,并在记事本中添加 UTF-8 字符串后保存。
如果已存在 CPG 文件,同样在 ArcGIS 10.2.1 及以后的版本中,可以打开 CPG 文件,将其内容从 UTF-8 修改为 936 或反之。
当上述编码方式无法满足需求时,可以从 ESRI 官方文档中查找所需的编码标识符列表。该列表包括 OEM、ANSI 和 ISO 代码页标识符,以及 Unicode 字符编码。
除了修改 CPG 文件外,还可以在系统注册表中设置 dbfDefault 值,以定义 shapefile 和 dBASE 文件导出的字符编码格式。需要注意的是,如果将 dbfDefault 值设置为特定代码页,则 ArcGIS 中导出的所有 shapefile 和 dBASE 文件都将使用该编码格式进行编码。