crossplatform.ru

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


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

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

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


Последние 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 Текстовая версия Сейчас: 29.3.2024, 3:55