Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Digan от Август 23, 2011, 15:59



Название: QString и CHAR массив: проблема с кодировкой.
Отправлено: Digan от Август 23, 2011, 15:59
С помощью функций WinAPI получаю имена файлов в каталоге.
WinAPI возвращает имя файла в виде массива типа CHAR, а после перевожу его в QString.

Код:
QString _curFileName = FindData.cFileName;

Все отлично работает, но если встречается файл название которого состоит из кириллицы, то получаю вместо имени файла текст типа: Çíàêè Âîïðîñà - ïèñüìî.mp3.

Как сделать так, чтобы русский текст в этом случае нормально отображался?


Название: Re: QString и CHAR массив: проблема с кодировкой.
Отправлено: merke от Август 23, 2011, 17:10
а кодеки юзаешь?


Название: Re: QString и CHAR массив: проблема с кодировкой.
Отправлено: Digan от Август 23, 2011, 17:30
а кодеки юзаешь?
Помогла строчка
Код:
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale())

Но везде ли так будет работать корректно?


Название: Re: QString и CHAR массив: проблема с кодировкой.
Отправлено: merke от Август 23, 2011, 17:36
Код
C++ (Qt)
  QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
   QTextCodec::setCodecForTr(QTextCodec::codecForName("Windows-1251"));


Название: Re: QString и CHAR массив: проблема с кодировкой.
Отправлено: merke от Август 23, 2011, 17:37
конечно же только под виндой ;D


Название: Re: QString и CHAR массив: проблема с кодировкой.
Отправлено: Авварон от Август 23, 2011, 20:14
зачем юзать винапи для листинга каталогов?
зачем юзать 8битные версии винапишных ф-ий, если есть юникодовские?