之前生成的gdal 2.1.1动态库,在通过命令行执行时,遇到有中文路径或中文图像名时,GDALOpen函数不能正确的被调用,如下图:

解决方法:

1.      在所有使用GDALAllRegister();语句后面加上一句CPLSetConfigOption("GDAL_FILENAME_IS_UTF8","NO");

2.      修改源码:将frmts/gdalallregister.cpp文件中GDALAllRegister()函数体内最上面加是一条CPLSetConfigOption("GDAL_FILENAME_IS_UTF8","NO");语句。

这里采用的是第一种方法,修改后的测试代码如下:

int test_gdal_support_chinese_path(int argc, char* argv[])
{if (argc < 2) {fprintf(stderr, "params fail\n");return -1;}GDALAllRegister();CPLSetConfigOption("GDAL_FILENAME_IS_UTF8", "NO");GDALDataset* poSrc = (GDALDataset*)GDALOpen(argv[1], GA_ReadOnly);if (poSrc == nullptr) {std::cout << "input image error" << std::endl;return -1;}int width_src = poSrc->GetRasterXSize();int height_src = poSrc->GetRasterYSize();int band_count_src = poSrc->GetRasterCount();fprintf(stderr, "image width: %d, height: %d, bandCount: %d\n", width_src, height_src, band_count_src);GDALDataType gdal_data_type = poSrc->GetRasterBand(1)->GetRasterDataType();int depth = GDALGetDataTypeSize((GDALDataType)gdal_data_type);fprintf(stderr, "depth: %d\n", depth);GDALClose((GDALDatasetH)poSrc);return 0;
}

结果如下图:

如果使用到OGRAllRegiser()函数,为了支持中文,那么也需要作同样的修改。

GitHub:https://github.com/fengbingchun/GDAL_Test

使GDAL库支持中文路径或中文文件名的处理方法相关推荐

  1. GDAL C#中文路径,中文属性名称乱码问题

    昨天写的博客,将C#读取shp中文属性值乱码的问题应该可以解决,博客地址为:http://blog.csdn.net/liminlu0314/article/details/54096119,然后又测 ...

  2. cv2.imread无法读取/保存中文路径下的图片的解决方法

    cv2.imread无法读取/保存中文路径下的图片的解决方法 关于无法读取 用cv2.imread读取中文路径下的图片会出现空.这种情况下windows会出现,mac好像还没出现过. 解决方法是,使用 ...

  3. python图片(带有中文路径和中文名称的)读写

    import cv2 import numpy as np import os # 读带有中文路径和中文名称的图片 def cv_imread(file_path):cv_img = cv2.imde ...

  4. 修改GDAL库支持RPC像方改正模型

    最近在做基于RPC的像方改正模型,方便对数据进行测试,修改了GDAL库中的RPC纠正模型,使之可以支持RPC像方改正参数. 下面是RPC模型的公式,rn,cn为归一化之后的图像行列号坐标,PLH为归一 ...

  5. 修改GDAL库支持IRSP6数据

    使用GDAL库发现不能打开IRSP6的数据,不过看GDAL提供的文件格式里面却是支持IRSP6的数据的,具体可以参考网页http://www.gdal.org/frmt_fast.html.下面图1是 ...

  6. 中文路径_中文分词的原理、方法与工具

    海德格尔说"词语破碎处,无物可存在".中文句子不像英文那样的词与词之间有显示空格边界,使得词和词组边界模糊. 为了让计算机更容易理解文本,通常中文信息处理的第一步是中文分词.中文分 ...

  7. 英文版系统的 IIS支持中文路径及中文文件名

    按迷信的说法是: 按时辰分析吉凶 子时:23点--01点前 左眼:意外之喜降临,会有不错好运,你的心脏要强一点,别兴奋过了头. 右眼:有人请你吃饭,可以省下一笔钱,但是这个人的目的不明,你要多多斟酌. ...

  8. 编译好的GDAL库,支持ECW格式,支持proj,支持geos

    这几天因为工作需要,把GDAL重新编译了一下,现支持ECW格式,即可以用GDALOPEN读取JPEG2000格式的影像数据;编译时也添加了对geos和proj的支持. 内含3个文件夹,分别是gdal, ...

  9. [Python] 中文路径和中文文本文件乱码问题

    情景: Python首先读取名为log.txt的文本文件, 其中包含有文件名相对路径信息filename. 随后Python调用shutil.copy2(src, dst)对该filename文件进行 ...

最新文章

  1. bread是可数还是不可数_小学英语语法名词 不可数名词详解
  2. Centos7手动安装OpenStack Mitaka版本--KeyStone安装
  3. java的准动态(反射)
  4. OpenGL绘制一个三角形的实例
  5. [译]GC专家系列1:理解Java垃圾回收
  6. mysql分析sql语句性能_sql语句执行性能分析
  7. 前端学习(2020)vue之电商管理系统电商系统之完成商品添加操作
  8. 动手学无人驾驶(6):基于IMU和GPS数据融合的自车定位
  9. php输出mysql的数据结构_php课程 13-43 mysql的数据结构是什么
  10. UVA 12904 Load Balancing 暴力
  11. golang日志服务器_golang 写日志到syslog
  12. java写ev3程序_EV3程序(一)直行
  13. C语言 打地鼠游戏 超级详解,各个函数与算法,设计思路与流程
  14. 百度bae定时任务使用方法
  15. 怎么进行finebi下载
  16. 让你的微信小程序对用户更加友好:上拉加载和下拉刷新就是关键
  17. 魔兽世界一个服务器发邮件给,今天突然收到一个网易魔兽世界邮件,不知道真的还是假的 他的邮件格式好奇怪!大家帮我看看...
  18. 计算机桌面壁纸怎么来回换,我的电脑为什么在总是自动换桌面壁纸???
  19. hadoop jar xxxx.jar 执行的流程
  20. JavaScript高级 ES7-ES13 新特性

热门文章

  1. PCLPCL/OpenNI tutorial 2: Cloud processing (basic)
  2. 和12岁小同志搞创客开发:手撕代码,做一款密室自动门
  3. python字符串基本形式_python字符串常用方式
  4. 【全网之最】JavaScript中字符串以特定字符分隔开之后,获取最后一个分割出来的字符串,多用于获取文件的后缀名(格式)
  5. Ubuntu18.04 ROS Melodic安装全过程整理
  6. Unity 3D游戏开发学习教程
  7. Unity安卓游戏开发:打造7款2D 3D游戏 Unity Android Game Development : Build 7 2D 3D Games
  8. 藤摇椅游戏道具制作全流程讲解视频教程
  9. 深入理解ceph-disk prepare 源码逻辑
  10. visual-reasoning 笔记