【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.
順序 選擇 循環 總結