QT應用程序 安裝路徑中文異常問題


【1】QT 安裝中文路徑啟動異常問題

最近在搞一個很簡單的QT應用程序,開發環境VS2017 + QT5.9,線上異常報錯:安裝中文路徑下啟動崩潰~~~~

最后,本地調試Debug版本,發現安裝中文路徑下,安裝路徑為亂碼,導致加載翻譯文件、創建日志文件、加載動態庫等等均失敗。

對我而言,新發現新問題,先問度娘。嘗試了很多解決方案,最終都以失敗告終。

於無望處,突然柳暗花明,在一個帖子上看到這么一句話:

Qt中用於控制讀出和寫入文件系統時的字符編碼由 QTextCodec::setCodecForLocale() 所決定。

加入 QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8")); 問題解決

當然,記得先添加頭文件:#include <QTextCodec>

編譯、啟動、成功。再自測。

自測發現利用log4cpp模塊創建日志文件時,需要利用std::string類型的參數。

但是,QSting類型直接利用toStdString()接口轉換為std::string類型后,函數返回異常,沒有成功創建日志文件。

再繼續尋根問因,后來,發現需要進行一下中文轉換:

QTextCodec::codecForName("gb18030")->fromUnicode(logFileName).data()

如上,這樣轉換后是std::string類型參數傳入函數,創建日志文件正常。

再編譯、啟動、運行一切正常。

特此備錄。僅供參考。具體環境,具體分析。

 

Good Good Study, Day Day Up.

順序 選擇 循環 總結


免責聲明!

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



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