Название: Путь к файлу(папке) кириллицей Отправлено: ramzay_77 от Июль 11, 2013, 18:35 Здравствуйте, уважаемые форумчане!
Второй день бьюсь над удалением файлов и папок, имена которых - в кирице. Копаю в сторону QTextCodec : QTextCodec::setCodecForTr(QTextCodec::codecForLocale()); //QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8")); //QTextCodec::setCodecForTr(QTextCodec::codecForName("Windows-1251") ); QString string = "Моя папочка"; qDebug()<<string; qDebug()<<tr(string.toAscii()); qDebug()<<tr(string.toUtf8()); qDebug()<<tr(string.toLatin1()); qDebug()<<tr(string.toLocal8Bit()); Но ничто из перечисленного (в т.ч. из закоментированного) не подходит. Вывод qDebug() - на рисунке. А создание папки - без проблем : QString NewDir = "Новая папка"; DModel->mkdir(currentIndex(),NewDir); Что делать? Название: Re: Путь к файлу(папке) кирилицей Отправлено: merke от Июль 11, 2013, 18:39 Работай только с UTF-8
Название: Re: Путь к файлу(папке) кирилицей Отправлено: ramzay_77 от Июль 11, 2013, 18:45 Если я Вас правильно понял, то это тоже не работает:
QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8")); QString string = "Моя папочка"; qDebug()<<codec->fromUnicode(string.toUtf8()); Название: Re: Путь к файлу(папке) кирилицей Отправлено: kambala от Июль 11, 2013, 18:54 1) исходники сохранять в UTF-8
2) setCodecForTr() устанавливает кодировку для tr(). тебе же нужно setCodecForCStrings() Название: Re: Путь к файлу(папке) кирилицей Отправлено: ramzay_77 от Июль 11, 2013, 19:33 В кусок исходника с применением setCodecForCStrings носом не тыкнете?
Упорно не работает... Название: Re: Путь к файлу(папке) кирилицей Отправлено: gil9red от Июль 11, 2013, 19:37 Код: class UTextCodec в main.cpp: Код: UTextCodec::initTextCodecs("cp1251"); Название: Re: Путь к файлу(папке) кирилицей Отправлено: Alex Custov от Июль 11, 2013, 20:25 Код
Исходники должны быть в UTF-8. И при чём тут вообще setCodecForTr()? Название: Re: Путь к файлу(папке) кирилицей Отправлено: ramzay_77 от Июль 11, 2013, 20:32 Спасибо всем откликнувшимся!
Все заработало. Alex Custov - отдельное спасибо. Благодаря Вам, пазл сложился! Название: Re: Путь к файлу(папке) кирилицей Отправлено: ramzay_77 от Июль 13, 2013, 11:12 Все проблемы решились, но появилась маленькя неприятность :
при запуске отладчика в окне вывода приложения qDebug() кириллические строки выводит иероглифами... Изменение настроек отладчика методом научного тыка положительных результатов не дало. Можно ли эту неприятность устранить ? Название: Re: Путь к файлу(папке) кириллицей Отправлено: kuzulis от Июль 13, 2013, 20:33 Нет. Если не ошибаюсь, то в консольку выводится в CP866.
Название: Re: Путь к файлу(папке) кириллицей Отправлено: ramzay_77 от Июль 13, 2013, 20:35 Спасибо! Значит - не будем совершенствовать велосипед...
Название: Re: Путь к файлу(папке) кириллицей Отправлено: ритт от Июль 20, 2013, 05:34 в консоли, из которой запускается приложение (и в которую же сыплет сообщениями): chcp 1251 при этом QTextCodec::setCodecForLocale() звать не надо (в рус-локализованной win cp1251 - дефолтовый кодек) |