GDAL打开HDF格式时遇到的中文路径问题(未解决)
众所周知,中文环境下(VS2010 C++工程编码为多字节编码),在使用1.8.0版本以后的GDAL打开中文路径下的影像文件(如GeoTiff文件)时,
需对中文文件路径做特殊处理,有2种方法:(我使用的GDAL库添加了HDF4、HDF5格式支持)
(1)临时设置GDAL为本机编码环境
- GDALAllRegister();
- CPLSetConfigOption("GDAL_FILENAME_IS_UTF8","NO");//设置为非UTF-8编码
- GDALDataset* modisDataset = (GDALDataset*) GDALOpen("D:\\bigData\\hdf\\天天\\MOD04_L2.A2012001.0320.051.2012001212607.hdf", GA_ReadOnly);
/*Open HDF Success*/
(2)将多字节编码的中文路径转为UTF-8编码,再传给GDAL
- char* pszHDFSource = local_to_utf8("D:\\bigData\\hdf\\天天\\MOD04_L2.A2012001.0320.051.2012001212607.hdf");
//UTF8 encoding pszHDFSource is D:\bigData\hdf\澶╁ぉ\MOD04_L2.A2012001.0320.051.2012001212607.hdf- GDALAllRegister();
- GDALDataset* modisDataset = (GDALDataset*) GDALOpen(pszHDFSource, GA_ReadOnly);
/*Open HDF Failed*/
今天写了一个从MODIS HDF格式数据中提取子数据集到GeoTiff文件的小工具,在打开中文路径下的HDF文件时遇到一个比较奇怪的问题:
p1.使用第一种方法时,可以打开中文路径下的GeoTiff、HDF数据文件,也可以向中文路径下写出GeoTiff数据文件;
p2.使用第二种方法时,可以打开中文路径下的GeoTiff数据文件,也可以向中文路径下写出GeoTiff数据文件,但是无法打开中文路径下的HDF数据文件;
现象1说明上述两种中文路径解决方法不等价;现象2说明我们自己写的local_to_utf8()函数是没有问题的,问题可能出在GDAL与HDF库的交互过程中。
原因猜测:GDAL在调用HDF库时,是否对路径编码做了改变?或者HDF库接收到非本机编码的路径后,是否又将其转为了本机编码或者其他格式的编码?
又或者在编码转换过程中出现了什么差错?
由于我并没有去看HDF的源码,因此上述猜测可能并不准确,希望有人遇到这样问题的人可以细致分析和研究一下。
GDAL打开HDF格式时遇到的中文路径问题(未解决)的更多相关文章
- svn不支持中文路径问题的解决
作者:朱金灿 来源:http://blog.csdn.net/clever101 svn的授权文件authz默认是不支持中文路径的,因此在精确控制中文文件夹的授权时往往会出错.要解决这个问题,需要用U ...
- [GDAL]读取HDF格式的calipso数据
探测地球云层分布的CloudSat和CALIPSO卫星 http://www.nasa.gov/mission_pages/calipso/main/index.html http://www.nas ...
- python2含有中文路径报错解决办法[\xe4\xbf\xa1\xe6\x81\xaf]
如图所示 百度的解决办法大多数是针对python3版本的,在脚本开头加# -*- coding:utf-8 -*-,但是python2版本加了编码格式,还是报错,具体解决办法是:path =unico ...
- GDAL打开mdb文件失败解决方法
使用GDAL打开mdb文件时提示下面错误信息: ERROR 1: Unable to initialize ODBC connection to DSN for DRIVER=Microsoft Ac ...
- 使用C#版本的gdal库打开hdf文件
作者:朱金灿 来源:http://blog.csdn.net/clever101 最近应同事的请求帮忙研究下使用C#版的gdal库读取hdf文件,今天算是有一点成果,特地做一些记录. 首先是编译C#版 ...
- gdal中文路径无法打开问题
在C#中使用OGR读写矢量数据时,需要引用“using OSGeo.OGR;”. 同时为了处理中文路径和中文字段,需要在开始设置下面两个属性,代码如下: //为了支持中文路径,请添加下面这句代码(大多 ...
- QGis、Gdal本地中文路径问题
编译qgis完整项目后,由于Gdal库的原因,中文路径下通过添加矢量数据中数据库中是没有OGR的Oracle数据库功能的: 最开始打算通过重新编译gadl库从内部支持中文的(有成功的麻烦也请告诉我), ...
- 浅析GDAL库C#版本支持中文路径问题
GDAL库对于C#的支持问题还是蛮多的,对于中文路径的支持就是其中之一(另一个就是通过OGR库获取图形的坐标信息). 关于C#支持中文路径,看过我之前博客的应该都不陌生,如果使用的是我修改过的GDAL ...
- GDAL添加ECW格式支持
目录 GDAL添加ECW格式支持 ECW 下载ECW JPEG SDK 在Unix平台构建支持ECW的GDAL 二进制ECW SDK和GCC >= 5.1 在Linux上构建的教程 在Windo ...
随机推荐
- 主成分分析(PCA)原理详解(转载)
一.PCA简介 1. 相关背景 上完陈恩红老师的<机器学习与知识发现>和季海波老师的<矩阵代数>两门课之后,颇有体会.最近在做主成分分析和奇异值分解方面的项目,所以记录一下心得 ...
- Redis笔记(4)独立功能的实现
1.前言 本节记录一下redis的一些功能上的实现,包括发布订阅.事务.Lua脚本.排序.二进制位数组.慢查询日志和监视器. 2.发布订阅 上一章介绍sentinel的时候说到了sentinel会订阅 ...
- setAttribute()、getAttribute()与ele[attr]与自定义属性
一.自定义属性设置 1.setAttrbute() var q=document.getElementById("q"); q.setAttribute("index&q ...
- Android_触摸事件传递机制
Android中dispatchTouchEvent,onInterceptTouchEvent, onTouchEvent的理解ecandroid中的事件类型分为按键事件和屏幕触摸事件,Touch事 ...
- js字符串替换
<script language="javascript">var r= "1\n2\n3\n";//将字母\n替换成分号alert(r.repla ...
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(三):搭建开发环境
生成项目模板 登录Spring Initializr生成Spring Boot项目模板,保存到本地. 地址:https://start.spring.io/ 导入Maven项目 使用IDE导入生成的M ...
- Doxygen自动文档生成工具在Eclipse中的集成及使用举例
你有为软件编写说明文档的苦恼吗?当别人甩给你一个庞大的系统,让你根据里面的代码注释理解后写出一份完整的开发文档,你会怎么办?一个个的看代码 然后耗时N天来写吗?这既是一份苦差事也极其耗时,有没有更好的 ...
- 详解lastindex,正则test()与全局匹配g偶遇,带来一会true一会false的坑
一.简单的需求与奇怪的问题 周一接到需求文档,产品分类页的输入框,需要加一个智能下拉提醒的功能,大概就是用户输入啥,找到符合输入字段的产品名,进行下拉推荐,同时将此字段标红,有点类似于百度搜索的智能提 ...
- 解决webstorm本地IP访问页面出错的问题
想在手机端访问webstorm做出的页面,遇到了根据IP地址访问页面错误的问题,试了网上的方法:“设置webstorm可以被外部连接访问”,依旧不能解决 解决方法: 在webstorm下:ctrl+a ...
- C/C++编程GUI库比较
转自:http://blog.csdn.net/lostown/article/details/658654 最强的GUI库当属Qt,毕竟是商业化的东西,功能最完整,什么都好,包括类似java代码风格 ...