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

【1】QT 安裝中文路徑啓動異常問題函數

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

最後,本地調試Debug版本,發現安裝中文路徑下,安裝路徑爲亂碼,致使加載翻譯文件、建立日誌文件、加載動態庫等等均失敗。spa

對我而言,新發現新問題,先問度娘。嘗試了不少解決方案,最終都以失敗了結。翻譯

於無望處,忽然柳暗花明,在一個帖子上看到這麼一句話:調試

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

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

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

編譯、啓動、成功。再自測。開發

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

可是,QSting類型直接利用toStdString()接口轉換爲std::string類型後,函數返回異常,沒有成功建立日誌文件。

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

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

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

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

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

 

Good Good Study, Day Day Up.

順序 選擇 循環 總結

相關文章
相關標籤/搜索