Qt中文路徑亂碼問題(MSVC編譯器)
阿新 • • 發佈:2018-12-10
一、由於使用GDAL必須在MSVC版本下的Qt中,因此下載了一個MSVC版本的Qt,但是在顯示中文、利用GDALOpen函式讀取影象、選擇資料夾、寫入影象時都不能有中文字元,如果有則顯示為亂碼。比如我想利用開啟檔案對話方塊傳遞fileName給GDAL開啟函式,直接傳遞是不行的,因為GDALOpen第一個引數必須是const char*,而fileName必須是QString型別,因此需要兩者進行轉換,即QString轉const char*,在網上能查到許多方法,比如QByteArray b = fileName.toLatin1(); const char* c = b.data();
二、總結:在Qt中要想解決上述問題,必須按照下面的方法進行
首先刪除CPLSetConfigOption("GDAL_FILENAME_IS_UTF8","NO"); 然後轉為Uft8,即QString fileName = QFileDialog::getOpenFileName(this,"Open Image","",("所有檔案(*.*)")); QByteArray b = fileName.toUtf8(); const char* c = b.data(); GDALDataset* dataSet = (GDALDataset*)GDALOpen(c,GA_ReadOnly);