[小记]ArcEngine 10.0读取shapefile的中文属性值乱码
今天遇到个奇怪的问题,RT,据了解应该是读取dbf文件的编码问题,但是不知道AE是如果初始化内部Encoding,按照正常思路应该是取操作系统codepage来确定编码,google下,有以下两个资料。
参考资料:
http://support.esri.com/index.cfm?fa=knowledgebase.techArticles.articleShow&d=21106
但设置完之后,还是会出现乱码现象。对比过一些AE自带的DEMO,正常显示。
对比两个程序 ,最大区别就是License的初始化部分。
自己的:
1 ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine);
2 AoInitializeClass aoInitialize = new AoInitializeClass();
3 esriLicenseStatus status = aoInitialize.IsProductCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeEngine);
4 if (status == esriLicenseStatus.esriLicenseAvailable)
5 {
6 status = aoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeEngine);
7 if (status == esriLicenseStatus.esriLicenseCheckedOut)
8 {
9 return true;
10 }
11 else
12 {
13 return false;
14 }
15 }
16 return false;
3 esriLicenseStatus status = aoInitialize.IsProductCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeEngine);
4 if (status == esriLicenseStatus.esriLicenseAvailable)
5 {
6 status = aoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeEngine);
7 if (status == esriLicenseStatus.esriLicenseCheckedOut)
8 {
9 return true;
10 }
11 else
12 {
13 return false;
14 }
15 }
16 return false;
Demo用的是AxLicenseControl来初始化。
后面改为AxLicenseControl来初始化,显示正常。
故猜想,读取的dbf的codepage是在这些控件中初始化的。
在此mark下,求告知。