Engine 10.2.2 将sde要素类转出成shp后,字段名称超过3个汉字时就被截断

使用IFeatureDataConverter.ConvertFeatureClass将sde数据转出成shp,字段名称超过3个汉字时会被截断。比如说sde字段名为“家庭住址”,则到shp里面就成了“家庭住”,即超过3个的字段名就截断了,如何解决?
已邀请:

朱新颖

赞同来自: 李卓言

【解决办法】:
原因:shapefile 字段名不可超过10个byte,以前版本shape字段名不能超过5个汉字。而从10.2.1起,采用UTF-8编码,一个汉字占用3个byte,最多只能存3个汉字了。

解决:如果是10.2.1或者10.2.2版本,可以直接打补丁。
参考技术文章 http://support.esri.com/en/kno ... 42646

如果是10.3版本,可以修改注册表。想在Engine中实现shp字段名存储5个汉字的话,则在注册表中的Engine10.3下新建Common(下面技术文章是针对Desktop的,以同样方法在Engine10.3下添加Common即可)。修改后,执行IFeatureDataConverter就不会进行截断了。
参考技术文章 http://support.esri.com/en/kno ... 21106 
当然,由于shapefile格式的特性就是字段名最长10个byte,如果想存储大于5个汉字的话,建议使用File GDB或Personal GDB存储。

要回复问题请先登录注册