Portal for ArcGIS上传shp文件中文乱码可能情况
环境:
windows Server 2008;Portal for ArcGIS 10.2;ArcGIS for Server 10.2;PostgreSQL 9.2;ArcGIS for Desktop 10.2;ArcSDE 10.2;Maps for Office;Office 2013
问题描述:
软件配置完毕,服务正常,将A.shp文件打包成A.zip,上传到portal中,出现中文字段乱码问题。
问题排查与解决:
1)打开ArcMap加载服务,属性表乱码;但ArcMap加载原始未打包上传的A.shp文件属性表显示正常,初步怀疑是服务问题;
2)打开SDE,加载刚刚导入的图层,属性表乱码;
3)将未打包上传的A.shp文件导入SDE后,加载到ArcMap里,属性表显示正常,证明SDE、PostgreSQL数据库没有问题;
4)其他人的样例数据按以上操作均正常显示,无乱码;否定服务问题;
5)将其他人机器上的样例数据B.shp拷贝到本机,重新打包上传到portal,无乱码,初步怀疑是A.shp数据问题;
6)将B.shp在ArcMap中加载,显示无误,用Export导出成另外的C.shp;
7)将C.shp重新打包上传到portal,乱码重现;初步否定A.shp问题,初步怀疑是系统本身字符集影响了shp文件编码;
8)参考http://support.esri.com/en/knowledgebase/techarticles/detail/21106
9)ArcGIS默认通过读取系统的代码页(CodePage)来确定文件编码的(或者是根据操作系统语言来判断的?)。要保存成Unicode(UTF-8)编码,需要做一些修改。方法如下:
打开注册表,定位到HKEY_Current_User\Software\ESRI\,添加 Common 项,在Common项下面新建 CodePage项。然后在CodePage项中(注册表右侧)添加一个字符串(REG_SZ),名称: dbfDefault,健值:oem(或者UTF-8),如下图。修改完注册表之后,必须新建一个Shape文件或将已有的另存为(Export Data)新的Shape文件,才能让前面的修改生效。
10)重新将A.shp、C.shp分别打包上传到portal,乱码消失!