crossplatform.ru

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

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Отображение русских букв в QTableView, Отображает краказябли )
bynet
  опции профиля:
сообщение 4.7.2010, 14:34
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 69
Регистрация: 17.3.2008
Из: Belarus
Пользователь №: 124

Спасибо сказали: 0 раз(а)




Репутация:   0  


QSqlQuery query;
query.exec("create table company (id int primary key, "
"namecompany varchar(20), adresscompany varchar(20))");

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

затем

model = new QSqlTableModel(this);

model->setTable("company");
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
model->select();

view->setModel(model);

В таблице вместо Название предприятия и Адрес предприятия выдает краказяюли.
Как отобразить их в нармальном виде? Где именно ошибка при вставке в таблицу или при отображении?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 4.7.2010, 14:57
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(bynet @ 4.7.2010, 18:34) *
Как отобразить их в нармальном виде? Где именно ошибка при вставке в таблицу или при отображении?
сказать Qt какую кодировку исходника ты используешь.
лучший вариант:
кодировка исходника в UTF-8 без маркера (w/o BOM)
строковые литералы помещать в trUtf8()
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
bynet
  опции профиля:
сообщение 4.7.2010, 15:08
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 69
Регистрация: 17.3.2008
Из: Belarus
Пользователь №: 124

Спасибо сказали: 0 раз(а)




Репутация:   0  


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

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

2. А можно в настройках QtCreator где нибудь задать руский тест? А то везде приходится использовать QString::fromLocal8Bit?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 4.7.2010, 17:58
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(bynet @ 4.7.2010, 19:08) *
А можно в настройках QtCreator где нибудь задать руский тест?
что значит задать русский текст? Переключи раскладку клавиатуры и пиши по-русски.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
bynet
  опции профиля:
сообщение 5.7.2010, 12:53
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 69
Регистрация: 17.3.2008
Из: Belarus
Пользователь №: 124

Спасибо сказали: 0 раз(а)




Репутация:   0  


Если я пишу по русски в программе все отображается краказябликами, QString::fromLocal8Bit - с ним все нормально.
Приведите хотябы небольшой пример, как мне занасить руские буквы в бд а потом считывать...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
arial
  опции профиля:
сообщение 5.7.2010, 13:39
Сообщение #6


Студент
*

Группа: Участник
Сообщений: 39
Регистрация: 27.9.2009
Пользователь №: 1121

Спасибо сказали: 9 раз(а)




Репутация:   0  


QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());

Где UTF-8 - кодировка исходников.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 5.7.2010, 15:28
Сообщение #7


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


arial, а зачем ты кодек локали меняешь, можешь объяснить?

Цитата(bynet @ 5.7.2010, 16:53) *
Если я пишу по русски в программе все отображается краказябликами
я тебе во втором сообщении уже написал, как нужно поступать
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
arial
  опции профиля:
сообщение 6.7.2010, 8:55
Сообщение #8


Студент
*

Группа: Участник
Сообщений: 39
Регистрация: 27.9.2009
Пользователь №: 1121

Спасибо сказали: 9 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 5.7.2010, 16:28) *
arial, а зачем ты кодек локали меняешь, можешь объяснить?
Я пишу под вендой. В венде локаль Windows-1251. Если исходники в UTF-8, то приложение с кракозябами будет, если закоментировать эту строку. Если исходники в Windows-1251, то эта строка не нужна.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 6.7.2010, 12:46
Сообщение #9


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(arial @ 6.7.2010, 12:55) *
Если исходники в UTF-8, то приложение с кракозябами будет
у меня тоже винда и тоже UTF-8, крокозаблов не наблюдаю, потому-что смотри сообщение номер 2
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
arial
  опции профиля:
сообщение 6.7.2010, 13:02
Сообщение #10


Студент
*

Группа: Участник
Сообщений: 39
Регистрация: 27.9.2009
Пользователь №: 1121

Спасибо сказали: 9 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 6.7.2010, 13:46) *
у меня тоже винда и тоже UTF-8, крокозаблов не наблюдаю, потому-что смотри сообщение номер 2
Цитата(Litkevich Yuriy @ 4.7.2010, 15:57) *
сказать Qt какую кодировку исходника ты используешь.
Хорошо. Каким образом? Я другого способа не нашёл.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.3.2024, 12:13