關於Qt4 QDirIterator遇到中文死循環的問題

今天跟小寧寧哥討論個問題,遇到QDirIterator迭代目錄死循環。讓小寧寧哥痛苦不已。

    經過半小時對源碼反覆折騰無果後,才發現是中文目錄的問題。於是檢查系統,發現是英文環境的,LC_ALL的值爲C。修改LC_ALL=zh_CN.UTF-8後,死循環問題消失了。另我們興奮不已。如是繼續想辦法不修改系統環境解決中文問題。

    我們可以從程序中指定程序使用的編碼。

    QLocale::setDefault(QLocale(QLocale::Chinese, QLocale::China)) ;

    QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8")); 

    只需要這麼兩句就可以搞定了,也可以僅修改codec。編碼按照自己的需求修改了。

    對於QDirIterator遇到編碼問題會死循環,是否算Qt4的bug呢? 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章