编译qgis完整项目后,由于Gdal库的原因,中文路径下通过添加矢量数据中数据库中是没有OGR的Oracle数据库功能的;

最开始打算通过重新编译gadl库从内部支持中文的(有成功的麻烦也请告诉我),后来发现其实不用这么麻烦;

网上查找后介绍GDAL添加了对UTF8路径的支持,新增了一个配置项,叫GDAL_FILENAME_IS_UTF8,可以使用下面的语句设为YES或NO,默认为YES!

找到qgis源码中的qgis_core项目中的qgsapplication.cpp代码中的registerOgrDrivers()函数,在OGRRegisterAll();注册之前使用CPLSetConfigOption("GDAL_FILENAME_IS_UTF8","NO");即可解决问题!

但是事情并没有就这样结束!

在通过添加矢量数据时,发现全部变成了无效的数据,然后屏蔽上诉修改,发现恢复正常,看来qgis中有些功能对字符是有严格要求的;

通过调式代码发现,OGROpen打开文件失败,这里似乎必须要用UTF-8的字符,然后,在打开前调用 CPLSetConfigOption("GDAL_FILENAME_IS_UTF8","YES");

矢量数据可以正常打开了,目前暂时就这样解决,不知道还会不会有其他问题,有经验的可以交流下!

QGis、Gdal本地中文路径问题的更多相关文章

  1. GDAL支持中文路径和Shp文件中文属性写入

    在使用GDAL的过程中,为了支持中文,比需手动进行中文路径的设置,同时特别是在对Shp的属性进行中文输入的时候,都必须进行必要的设定. 为了支持中文路径,在注册了驱动之后,加上第三句就可以了.必须设置 ...

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

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

  3. GDAL打开HDF格式时遇到的中文路径问题(未解决)

    众所周知,中文环境下(VS2010 C++工程编码为多字节编码),在使用1.8.0版本以后的GDAL打开中文路径下的影像文件(如GeoTiff文件)时, 需对中文文件路径做特殊处理,有2种方法:(我使 ...

  4. gdal中文路径无法打开问题

    在C#中使用OGR读写矢量数据时,需要引用“using OSGeo.OGR;”. 同时为了处理中文路径和中文字段,需要在开始设置下面两个属性,代码如下: //为了支持中文路径,请添加下面这句代码(大多 ...

  5. 浅析GDAL库C#版本支持中文路径问题

    GDAL库对于C#的支持问题还是蛮多的,对于中文路径的支持就是其中之一(另一个就是通过OGR库获取图形的坐标信息). 关于C#支持中文路径,看过我之前博客的应该都不陌生,如果使用的是我修改过的GDAL ...

  6. VS2017编译GDAL(64bit)+解决C#读取Shp数据中文路径的问题

    编译GDAL过程比较繁琐,查阅了网上相关资料,同时通过实践,完成GDAL的编译,同时解决了SHP数据中文路径及中文字段乱码的问题,本文以“gdal-2.3.2”版本为例阐述整个编译过程. 一.编译准备 ...

  7. 使GDAL库支持中文路径或中文文件名的处理方法

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

  8. ifstream中文路径问题分析

    最近维护一个项目,遇到了ifstream在中文路径下打开文件失败的bug,我搜索了一下,最后整理成下文以后日后查阅. 一.问题重现 vs2008下创建一个简单win32工程. 使用ANSI编码方式:项 ...

  9. qt: 打不开png图像以及opencv加载中文路径问题;

    经过亲测, QT(版本: 5.9.4)提供的QImageReader或者函数load在加载本地png图像时,均会提示失败, 按照网上的方法,将Qt plugins下的imageformats 拷贝到e ...

随机推荐

  1. Xcode LLDB 调试Tips

    1.  bt -- 显示当前线程调用堆栈 2.  e -- 执行表达式,动态修改当前线程变量的值 3.  frame variable -- 打印当前堆栈所有变量值 4.  expr -O --lan ...

  2. python scipy学习-曲线拟合

    根据某地每月的平均温度[17, 19, 21, 28, 33, 38, 37, 37, 31, 23, 19, 18]拟合温度函数. import numpy as np import matplot ...

  3. Toast 工具

    public class Utils { private static Toast toast; public static void showtoast(Context context,String ...

  4. Can I Win

    In the "100 game," two players take turns adding, to a running total, any integer from 1.. ...

  5. gdb 调试多线程

    基本i threads 等操作略过,只谈线程同步.异步控制: 先点到,gdb attach到主线程t1 时,所有线程都会停止,所谓同步异步效果,是指在apply continue到所有线程之后, 再切 ...

  6. windows内网渗透技巧

    1.(windows)无扫描器情况下内网存活主机探测: for /l %i in (1,1,255) do @ping 192.168.1.%i -w 1 -n 1 | find /i "t ...

  7. 第二天--html+css

    <!Doctype html><html>    <head>        <meta charset="utf-8">      ...

  8. H5+ 移动app学习之二 Native.js

    Native.js技术,简称NJS,是一种将手机操作系统的原生对象转义,映射为JS对象,在JS里编写原生代码的技术.如果说Node.js把js扩展到服务器世界,那么Native.js则把js扩展到手机 ...

  9. oracle undo回滚段详解

    1.Undo是干嘛用的?   在介绍undo之前先说一下另外一个东西 transaction ,翻译成交易或事务.我们在进行一个事务的过程中需要申请许多资源,一个复杂的事务也需要很多步来完成.那么一个 ...

  10. Cocos2d-x 生成真正的随机数

    关于随机数 cocos2d-x 定义了一个宏 CCRANDOM_0_1 生成的是 [0, 1] 之间的值 因此,要生成  [0-100] 之间的数    CCRANDOM_0_1 * 100 生成 [ ...