crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Отображение русских букв в QTableView
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Litkevich Yuriy Дата 6.7.2010, 14:32
 
Цитата(Litkevich Yuriy @ 4.7.2010, 18:57) *
лучший вариант:
кодировка исходника в UTF-8 без маркера (w/o BOM)
строковые литералы помещать в trUtf8()
arial Дата 6.7.2010, 13:44
 
Цитата(arial @ 6.7.2010, 14:02) *
Хорошо. Каким образом? Я другого способа не нашёл.
Кажется разобрался.

Раньше я делал так:
int main(int argc, char *argv[])
{
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
    QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
    QTextCodec::setCodecForTr(QTextCodec::codecForLocale());

    QApplication a(argc, argv);

    const QString title = QString::fromLocal8Bit("Заголовок");
    const QString text = QString::fromLocal8Bit("Текст");
    QMessageBox mb(QMessageBox::NoIcon, title, text, QMessageBox::Ok);
    mb.show();

    return a.exec();
}
Сейчас сделал так:
int main(int argc, char *argv[])
{
    QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
    QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));

    QApplication a(argc, argv);

    const QString title = QObject::tr("Заголовок");
    const QString text = QObject::tr("Текст");
    QMessageBox mb(QMessageBox::NoIcon, title, text, QMessageBox::Ok);
    mb.show();

    return a.exec();
}
arial Дата 6.7.2010, 13:02
 
Цитата(Litkevich Yuriy @ 6.7.2010, 13:46) *
у меня тоже винда и тоже UTF-8, крокозаблов не наблюдаю, потому-что смотри сообщение номер 2
Цитата(Litkevich Yuriy @ 4.7.2010, 15:57) *
сказать Qt какую кодировку исходника ты используешь.
Хорошо. Каким образом? Я другого способа не нашёл.
Litkevich Yuriy Дата 6.7.2010, 12:46
 
Цитата(arial @ 6.7.2010, 12:55) *
Если исходники в UTF-8, то приложение с кракозябами будет
у меня тоже винда и тоже UTF-8, крокозаблов не наблюдаю, потому-что смотри сообщение номер 2
arial Дата 6.7.2010, 8:55
 
Цитата(Litkevich Yuriy @ 5.7.2010, 16:28) *
arial, а зачем ты кодек локали меняешь, можешь объяснить?
Я пишу под вендой. В венде локаль Windows-1251. Если исходники в UTF-8, то приложение с кракозябами будет, если закоментировать эту строку. Если исходники в Windows-1251, то эта строка не нужна.
Litkevich Yuriy Дата 5.7.2010, 15:28
  arial, а зачем ты кодек локали меняешь, можешь объяснить?

Цитата(bynet @ 5.7.2010, 16:53) *
Если я пишу по русски в программе все отображается краказябликами
я тебе во втором сообщении уже написал, как нужно поступать
arial Дата 5.7.2010, 13:39
 
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());

Где UTF-8 - кодировка исходников.
bynet Дата 5.7.2010, 12:53
  Если я пишу по русски в программе все отображается краказябликами, QString::fromLocal8Bit - с ним все нормально.
Приведите хотябы небольшой пример, как мне занасить руские буквы в бд а потом считывать...
Litkevich Yuriy Дата 4.7.2010, 17:58
 
Цитата(bynet @ 4.7.2010, 19:08) *
А можно в настройках QtCreator где нибудь задать руский тест?
что значит задать русский текст? Переключи раскладку клавиатуры и пиши по-русски.
bynet Дата 4.7.2010, 15:08
  query.exec("insert into company values(1, 'Название предприятия', 'Адрес предприятия')");

1.мне писать так query.exec("insert into company values(1, trUtf8('Название предприятия'), trUtf8('Адрес предприятия')");

2. А можно в настройках QtCreator где нибудь задать руский тест? А то везде приходится использовать QString::fromLocal8Bit?
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 15.7.2025, 9:12