首先读取带有中文路径的shp文件,代码如下:
string strShpFullName = @"G:\学习资料\ArcGIS空间数据\ATShp\Boundary\China_Boundary.shp";
//注册Ogr
Ogr.RegisterAll();
OSGeo.GDAL.Gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8", "NO");
//读取字段属性值时设置,否则有中文乱码
OSGeo.GDAL.Gdal.SetConfigOption("SHAPE_ENCODING", "NO");
DataSource ds = Ogr.Open(strShpFullName, 0);
if (ds == null)
{
}
Layer layer = ds.GetLayerByName(Path.GetFileName(strShpFullName));
if (layer == null)
{
}
将“GDAL_FILENAME_IS_UTF8”设置为“NO”,结果DataSource为空,如下图:
如果将“GDAL_FILENAME_IS_UTF8”设置为“YES”,DataSource不为空,但是DataSource得属性Name中含有乱码,如下图:
这是什么问题??跪求答案。。。。。
第二个问题:读取shp文件的属性表,出现中文乱码,但是我已经设置了“OSGeo.GDAL.Gdal.SetConfigOption("SHAPE_ENCODING", "NO");”,为什么还会出现这种问题,在GDAl10.0中就没出现