OSGeo.GDAL.Gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8", "YES");OSGeo.GDAL.Gdal.SetConfigOption("SHAPE_ENCODING", "");OSGeo.GDAL.Gdal.AllRegister();OS... ...
OSGeo.GDAL.Gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8", "YES"); OSGeo.GDAL.Gdal.SetConfigOption("SHAPE_ENCODING", ""); OSGeo.GDAL.Gdal.AllRegister(); OSGeo.OGR.Ogr.RegisterAll();
[DllImport("gdal300.dll", EntryPoint = "OGR_F_GetFieldAsString", CallingConvention = CallingConvention.Cdecl)] public extern static System.IntPtr OGR_F_GetFieldAsString(HandleRef handle, int index); [DllImport("gdal300.dll", EntryPoint = "OGR_F_GetFieldAsBinary", CallingConvention = CallingConvention.Cdecl)] public extern static System.IntPtr OGR_F_GetFieldAsBinary(HandleRef handle, int index, out int byteCount);
string fieldName = pFieldDefn.GetName(); int fieldIndex = pFeatureDefn.GetFieldIndex(fieldName); //IntPtr pIntPtr = OGR_F_GetFieldAsString(OSGeo.OGR.Feature.getCPtr(pFeature), fieldIndex); int byteCount =0; //IntPtr a = count; IntPtr pIntPtr = OGR_F_GetFieldAsBinary(OSGeo.OGR.Feature.getCPtr(pFeature), fieldIndex, out byteCount); byte[] byteArray = new byte[byteCount]; Marshal.Copy(pIntPtr,byteArray, 0, byteCount); Console.WriteLine(byteCount); // Marshal.PtrToStringAnsi(pIntPtr) // Console.WriteLine(pFeature.GetFieldAsString(i)); string str = System.Text.Encoding.Default.GetString(byteArray); // UTF8Encoding utf8 = new UTF8Encoding();
// string str = utf8.GetString(byteArray);
Console.WriteLine(str);
-------------------------完--------------------------------