Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Подскажите, как в Qt выполнить преобразование из wchar* в char* с поддержкой русского языка?

24K
10 мая 2012 года
Abbath86
17 / / 04.11.2007
Подскажите, как в Qt выполнить преобразование из wchar* в char* с поддержкой русского языка?
24K
10 мая 2012 года
Abbath86
17 / / 04.11.2007
wcstombs не помогает
277
10 мая 2012 года
arrjj
1.7K / / 26.01.2011
Я в шоке у Qt охренеть какая справочная система с кучей примеров и подробным описанием всех функций

Вот так можно через QString например

QString::from* QString::to*

например

QString::fromWCharArray
QString::toLocal8Bit

Как через QTextCodec сделать сам почитай http://qt-project.org/doc/qt-4.8/classes.html
24K
10 мая 2012 года
Abbath86
17 / / 04.11.2007
С первым проверял. На английском выводит нормально, а по-русски какой-то бред выводит
277
10 мая 2012 года
arrjj
1.7K / / 26.01.2011
Куда выводит?

В консоль - он и не должен нормально выводить в консоле cp866 кодировка а он преобразует в win1251.
В widget - ну это смотря какой текстовый кодек по умолчанию, если UTF-8 то и не выведет нормально.
В космос - ну это уже у инопланетян на приеме проблемы.

Ты в файлик сохрани, открой его и посмотри что получилось.
1
11 мая 2012 года
kot_
7.3K / / 20.01.2000
 
Код:
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("Windows-1251"));
и так далее.
покажи свой код, в котором оно выводит ненормально
326
12 мая 2012 года
sadovoya
757 / / 19.11.2005
Сначала проверь, какая кодировка для файла стоит.
Если Windows-1251, то для всяких надписей вначале вбей

QTextCodec::setCodecForTr(QTextCodec::codecForName("windows-1251"));

Это для подобного такому:

QPushButton *butAbout = new QPushButton(QPushButton::tr("О программе..."));

Это рекомендованный стиль все строковые константы предварять tr(), тогда, если потребуется локализация, то все будет элементарно просто.

И пользуйся QString, там все есть и хелп отличный. Да тут и так все уже рассказали.
24K
12 мая 2012 года
Abbath86
17 / / 04.11.2007
Всем спасибо, решение найдено
326
26 октября 2014 года
sadovoya
757 / / 19.11.2005
В Qt5 setCodecForCStrings исчезла, теперь всегда подразумевается кодировка UTF-8 для литералов в исходниках (соответственно в setCodecForCStrings исчезает надобность). В UTF-8 и надо делать исходники, чтобы избежать проблем с локализацией. Это я так понял ситуацию с Qt5. Верно? Еще изменения в сравнении с Qt4 касаются fromAscii() / toAscii() и другого; приличный список изменений - здесь.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог