• 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_UserSoftwareESRI,添加 Common 项,在Common项下面新建 CodePage项。然后在CodePage项中(注册表右侧)添加一个字符串(REG_SZ),名称: dbfDefault,健值:oem(或者UTF-8),如下图。修改完注册表之后,必须新建一个Shape文件或将已有的另存为(Export Data)新的Shape文件,才能让前面的修改生效。

    10)重新将A.shp、C.shp分别打包上传到portal,乱码消失!

  • 相关阅读:
    如何实现parseFloat保留小数点后2位
    C#正则表达式整理备忘
    HRESULT:0x80070057 (E_INVALIDARG)的异常的解决方案
    c# using的几种用法
    QQ截图 有快捷键的,如Shift+S
    史上最深刻的黄段子
    文本框回车自动提交
    C#与ASP.NET中DateTime.Now函数详解
    ASP.NET页面生命周期
    .NET中HttpWebRequest详解
  • 原文地址:https://www.cnblogs.com/esrichina/p/3607126.html
Copyright © 2020-2023  润新知