GDAL GDALOpen 打開中文路徑的問題


    今天遇到了個問題,在VS2008下面,用GDAL打開影像時,一直出現問題,調試了好半天,先是將QString類型的路徑名轉為char*,試了諸多方法,不管怎么轉,就是提示錯誤,后來直接用char*指向路徑名,還是出錯,路徑名不含中文時完全沒問題。於是問題不在這里,問題在GDALOpen這個函數上,這就奇怪了,Linux下用的GDAL都不會出現這種問題,Windows的VS2008下就有這種問題。在網上找到一篇文章http://blog.csdn.net/liminlu0314/article/details/6610069,頓時解決了問題。

原因如下:用的是最新的GDAL1.9,GDAL中有一個函數CPLGetConfigOption( "GDAL_FILENAME_IS_UTF8", "YES" )判斷,通過判斷是否是UTF8的編碼,而且指定的默認值還是UTF8編碼,在含有中文路徑的字符串大多數的編碼應該是GBK的編碼,這樣,系統就將GBK的編碼當做UTF8的編碼來進行轉換,結果就是漢字全部是亂碼,導致的結果就是找不到文件,所以打不開。

解決方法:

不改變GDAL源代碼,在自己調用GDALRegisterAll()和OGRAllRegiser()函數后,加上下面一句即可。
CPLSetConfigOption("GDAL_FILENAME_IS_UTF8","NO");


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM