库:GDAL 2.3.1 x64bit(已编译,仅使用4个dll文件。)
语言:C#.net 4.5.2
want:读取shp的dbf文件中的所有列数据
dbf的编码:CP949,但是UTF-8是相同的错误
使用gdal(OGR)阅读韩语时,
另一列获取所有其他数字列都很好,
但我会尝试阅读韩文(列名是英语,只是数据是韩文)
获取一半的数据,如何获取所有数据?
我应该在GDAL源代码中修复什么?或其他解决方案?
这是我的代码
// ~~~~ some Create object
dsTarget = drv.Open(linkFileName, 0);
Layer laTarget = null;
Feature featTarget;
Geometry geomTarget;
// dir.shp value
Layer laSource = dsSource.GetLayerByIndex(0);
Feature featSource = null;
//Geometry geomSource;
int i = 0;
while((featSource = laSource.GetNextFeature()) != null)
{
string geom_wkt = "";
using(featSource)
{
// get attrbute value/geom from feature
// and set dictionary
Dictionary<string, string> dic = new Dictionary<string, string>();
FieldDefn fdef;
for(int iField = 0; iField < featSource.GetFieldCount(); iField++)
{
using(fdef = def.GetFieldDefn(iField))
{
if(featSource.IsFieldSet(iField))
{
// this is my problem
//
string fld = featSource.GetFieldAsString(iField);
Console.WriteLine(fld);
}
else
{
dic.Add(fdef.GetNameRef(), "");
}
}
}
//~~~ do something
}
}
数据和readResult示例:
我可以读取字符串列的另一个数字数据,
注意:没有其他方法可以读取值。
我不能对GetFieldAsbinary或其他任何东西进行罚款...