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 ...
随机推荐
- [原创]K8 DNN密码解密工具(DotNetNuke Password Decrypt)
工具: K8_DNN_Password_Decrypt编译: VS2012 C# (.NET Framework v2.0)组织: K8搞基大队[K8team]作者: K8拉登哥哥博客: http: ...
- 阿里语音识别(语音转文字)java调用全程手把手详解-适合中小学生快速上手
阿里语音识别服务java调用全程手把手详解-适合中小学生快速上手 阿里语音识别与百度语音识别的调用对比: 用例:1分30秒的录音文件 百度用时:3秒 阿里用时:30秒 识别准确率来看 ...
- 基于GTK+3 开发远程控制管理软件(C语言实现)系列二 Centos7下开发环境搭建
一.安装gcc gcc-c++ make等编译工具 yum install gcc gcc-c++ kernel-devel 这一步,其实可以不用做,你在安装Centos7的时候,如果选择开发模式安装 ...
- opencv2函数学习之flip:实现图像翻转
在opencv2中,flip函数用来进行图片的翻转,包括水平翻转,垂直翻转,以及水平垂直翻转. void flip(const Mat& src, Mat& dst, int flip ...
- ElasticSearch 6.x 父子文档[join]分析
ES6.0以后,索引的type只能有一个,使得父子结构变的不那么清晰,毕竟对于java开发者来说,index->db,type->table的结构比较容易理解. 按照官方的说明,之前一个索 ...
- C# 多线程学习系列二
一.关于前台线程和后台线程 1.简介 CLR中线程分为两种类型,一种是前台线程.另一种是后台线程. 前台线程:应用程序的主线程.Thread构造的线程都默认为前台线程 后台线程:线程池线程都为后台线程 ...
- 超漂亮的CSS3按钮制作教程分享
要求 必备知识 基本了解CSS语法,初步了解CSS3语法知识. 开发环境 Adobe Dreamweaver CS6/Chrome浏览器 演示地址 演示地址 利用CSS3属性制作按钮,我们只需要用到G ...
- Chapter 3 Phenomenon——19
His unfriendliness intimidated me. 他的不友好恐吓到了我. My words came out with less severity than I'd intende ...
- Jetty学习四:部署到Jetty
转自:http://www.tuicool.com/articles/NrENjq Web应用的框架 标准Jetty发布版本能部署标准servlet Spec Web应用和Jetty内部Context ...
- 开源方案搭建可离线的精美矢量切片地图服务-7.Arcgis Pro企业级应用
1.前言 上篇讲.pbf字体库的时候说到我们使用的字体通过Arcgis Pro 生成,Arcgis Pro样式基于Mapbox做的矢量切片地图渲染.这篇主要讲一下Arcgis Pro矢量切片生成的的具 ...