问题描述:
emmmm,水平太菜,这个问题看起来比较玄幻。之前默认
OSGeo.GDAL.Gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8", "YES");
OSGeo.GDAL.Gdal.SetConfigOption("SHAPE_ENCODING", "");
的时候,完全乱码。之后采取设置(详见C#借助GDAL实现对shp属性按字段读取,并解决乱码问题)
OSGeo.GDAL.Gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8", "YES");
OSGeo.GDAL.Gdal.SetConfigOption("SHAPE_ENCODING", "CP936");
暂时解决了乱码问题。但是玄幻就玄幻在做完数据入库后,这个解决方案又挂了。。。。。最后参考网上文档采取了一种稍微复杂点的方案解决:
1.添加引用
using OSGeo.OGR;
using System.Runtime.InteropServices;
2.在类中加入(注意gdal版本号)
//解决shp属性乱码问题
[DllImport("gdal111.dll", EntryPoint = "OGR_F_GetFieldAsString", CallingConvention = CallingConvention.Cdecl)]
public extern static

本文详细介绍了使用 C# 和 GDAL 库读取 SHP 文件时遇到的中文乱码问题及解决方案。通过设置 GDAL 的配置选项、添加 DLL 导入和自定义字符串获取方法,成功解决了属性字段的中文乱码问题。
最低0.47元/天 解锁文章
3283

被折叠的 条评论
为什么被折叠?



