Название: Как из русской QString получить корректный const char* Отправлено: Caduceus от Август 26, 2011, 11:19 Одна библиотека требует на вход const char* - это путь до файла, а у меня путь до файла в QString
Делал раньше вот так filename.toStdString().c_str() Если путь до файла содержит русские буквы, то там лажа. Как сделать нормально? toLatin1, toAscii, toUtf8 не помагают Название: Re: Как из русской QString получить корректный const char* Отправлено: BRE от Август 26, 2011, 11:30 Для начала стоит определиться в какой кодировке требуется получить строку. Если это венда, то скорее всего нужна CP1251.
Воспользуйся QTextCodec для конвертации. Название: Re: Как из русской QString получить корректный const char* Отправлено: Caduceus от Август 26, 2011, 11:33 Но заранее же не известно что в пути до файла у юзера. Хоть китайский там могту быть. А скормить на вход функции из либы надо именно const char*
Название: Re: Как из русской QString получить корректный const char* Отправлено: ddrtn от Август 26, 2011, 11:35 Зависит от системной кодировки.
Для win-1251: Код: QTextCodec::setCodecForLocale(QTextCodec::codecForName("windows-1251")); Название: Re: Как из русской QString получить корректный const char* Отправлено: Пантер от Август 26, 2011, 11:38 QTextCodec * QTextCodec::codecForLocale () [static]
Название: Re: Как из русской QString получить корректный const char* Отправлено: maint от Август 26, 2011, 11:54 я делаю следующим образом в функции
Код: if(strstr(curr_locale, "UTF") == NULL){ Название: Re: Как из русской QString получить корректный const char* Отправлено: Авварон от Август 26, 2011, 14:29 toLocal8Bit() ?
Название: Re: Как из русской QString получить корректный const char* Отправлено: ритт от Август 27, 2011, 23:38 toLocal8Bit()
а ещё правильнее - QFile::decode/encode Название: Re: Как из русской QString получить корректный const char* Отправлено: TukiNov от Август 29, 2011, 11:15 Но заранее же не известно что в пути до файла у юзера. Хоть китайский там могту быть. А скормить на вход функции из либы надо именно const char* Случаем либа не gistoolkit от Панорамы ? :) Если да то, то я скармливаю через toAscii().data(); |