20 / 15 / 7
Регистрация: 03.10.2014
Сообщений: 94
|
|
1 | |
Qt 5.8 кракозябры при отображении таблицы MySQL в QTableview08.05.2017, 13:55. Показов 3803. Ответов 18
Метки нет (Все метки)
Здравствуйте, уважаемые.
Есть СУБД MariaDB с базой в кодировке UTF-8. Пытаюсь вывести таблицу из этой БД на QTableview. Кириллица выводится "кракозябрами". В линуксе, естественно, всё ОК. Система: Windows 10 x86_64. Qt 5.8. Qt Creator 4.2.1 minGW-32. Куда копать, кого винить?))) Заранее благодарю.
0
|
08.05.2017, 13:55 | |
Ответы с готовыми решениями:
18
DataGridView кракозябры при отображении русских символов Загружаю файл Word, но при отображении файла у меня кракозябры Замена названий таблиц в отображении QTableView Ошибка при отображении таблицы |
7 / 7 / 0
Регистрация: 15.11.2016
Сообщений: 36
|
|
08.05.2017, 14:03 | 2 |
Файлы проекта в какой кодировке? Обычно Windows переделывает кодировку.
Вот тут посмотри, решили такую же проблему - Неверная кодировка в форме. UnicodeUTF8' is not a member of 'QApplication'
1
|
20 / 15 / 7
Регистрация: 03.10.2014
Сообщений: 94
|
|
08.05.2017, 14:34 [ТС] | 3 |
Все исходники в UTF-8.
((( Дело в том, что с самим интерфейсом всё нормально. Русский язык отображается корректно, а вот вывод таблицы в "кракозябрах".
0
|
7 / 7 / 0
Регистрация: 15.11.2016
Сообщений: 36
|
|
08.05.2017, 14:42 | 4 |
Точно кодировка базы данных UTF-8? Проверь ещё раз.
Базу как выводишь?
1
|
20 / 15 / 7
Регистрация: 03.10.2014
Сообщений: 94
|
||||||
08.05.2017, 15:09 [ТС] | 5 | |||||
Как проверить кодировку базы? При установке MariaDB ставил галочку напротив "создавать БД в кодировке UTF-8 по-умолчанию".
Вывожу базу так:
С этой виндой - одни грабли... Как же хорошо и уютно в пингвине...
0
|
7 / 7 / 0
Регистрация: 15.11.2016
Сообщений: 36
|
|
08.05.2017, 15:11 | 6 |
Попробуй установить не галочкой, а прописать в client
[client] default-character-set=utf8 Либо можно попробовать вручную преобразовать в utf-8 "ALTER DATABASE your_data_base_name charset=utf8;" (это для пустой базы данных, можно поискать как сделать для базы данных с данными) PS: Не по теме конечно, но MariaDB - окончательная БД? Нет желания перейти на более стабильную ? Тот же postgres например PSPS: Про бэкап не забудьте на всякий случай))
1
|
20 / 15 / 7
Регистрация: 03.10.2014
Сообщений: 94
|
|
08.05.2017, 15:29 [ТС] | 7 |
Большое спасибо за ответы и советы.
Пример основан на тестовой базе MariaDB, основная база большая(((. Скорее всего, перекидывать её с Марии на Постгрес - не вариант. Попробую ваши рекомендации и отпишусь. Небольшая просьба - не исчезайте из этой темы))). Добавлено через 11 минут Выполнил все ваши рекомендации, рестартнул СУБД и ничего не поменялось...(((
0
|
7793 / 6560 / 2984
Регистрация: 14.04.2014
Сообщений: 28,672
|
|
08.05.2017, 15:31 | 8 |
А как вообще подключаешься? Разве есть поддержка этой MariaDB?
1
|
20 / 15 / 7
Регистрация: 03.10.2014
Сообщений: 94
|
||||||
08.05.2017, 15:48 [ТС] | 9 | |||||
Это форк MySQL. Скачал коннектор, закинул .dll в каталог с проектом и подключаюсь:
Устанавливаю постгрес. Запрашивает локаль по-дефолту. Какую посоветуете (в винде), чтобы в будущем не было граблей?
0
|
7 / 7 / 0
Регистрация: 15.11.2016
Сообщений: 36
|
|
08.05.2017, 15:55 | 10 |
Да там всё стандартно, повесь на localhost. Если что, всегда можно изменить порты. После установки надо будет тебе собрать psql драйвера. Есть много мануалов, в соседней теме я тоже описывал
1
|
7793 / 6560 / 2984
Регистрация: 14.04.2014
Сообщений: 28,672
|
|
08.05.2017, 16:01 | 11 |
Ну так может там не допилили что-то или надо какую-то команду дать при подключении, чтобы кодировка была правильная.
1
|
20 / 15 / 7
Регистрация: 03.10.2014
Сообщений: 94
|
|
08.05.2017, 16:09 [ТС] | 12 |
Попробую "Чистый" MySQL поставить и протестировать.
Спасибо.
0
|
20 / 15 / 7
Регистрация: 03.10.2014
Сообщений: 94
|
||||||
12.05.2017, 20:05 [ТС] | 13 | |||||
UPDATE!!!!
А ларчик просто открывался! Сделал запрос к базе перед тем, как помещать таблицу в QTableView.
2
|
7793 / 6560 / 2984
Регистрация: 14.04.2014
Сообщений: 28,672
|
|
12.05.2017, 21:03 | 14 |
Я об этом и говорил. Только не ясно, зачем ты используешь эту древнюю кодировку.
1
|
20 / 15 / 7
Регистрация: 03.10.2014
Сообщений: 94
|
|
13.05.2017, 03:13 [ТС] | 15 |
Я её не использую.
БД в кодировке UTF-8.
0
|
7793 / 6560 / 2984
Регистрация: 14.04.2014
Сообщений: 28,672
|
|
13.05.2017, 09:01 | 16 |
Ну если указываешь 1251, то она где-то установлена.
0
|
19 / 19 / 4
Регистрация: 27.05.2013
Сообщений: 119
|
|
17.05.2017, 10:11 | 17 |
У меня схожая проблема, стандартный mysql, в 5.8 после запроса получаю данные в кракозябре, в 5.7 проблем нет.
База была в ср1257, сейчас изменял на utf8mb4 default и utf16 default ввключая таблицы, эффекта положительного не дает. Дело наверно не в этом. Будут еще советы куда смотреть что делать? Что делает SET в примере выше?
0
|
7793 / 6560 / 2984
Регистрация: 14.04.2014
Сообщений: 28,672
|
|
17.05.2017, 15:39 | 18 |
SET NAME не задаёт кодировку базы данных, а определяет в какой кодировке будет вестись обмен между программой и СУБД. И здесь не понятно, почему это помогло автору.
0
|
19 / 19 / 4
Регистрация: 27.05.2013
Сообщений: 119
|
|
18.05.2017, 10:18 | 19 |
короче, это помогает. Не известно как, когда в моем случае уже все в utf16 default.
Именно SET NAMES 'cp1251'
0
|
18.05.2017, 10:18 | |
18.05.2017, 10:18 | |
Помогаю со студенческими работами здесь
19
Кракозябры при выводе в Mysql в UTF-8 Проблема при отображении и печати таблицы Кракозябры при добавлении в материал картинки/таблицы и т.д phpMyAdmin неправильная кодировка при отображении данный из таблицы на странице браузера Как добиться постоянной (фиксированной) ширины столбцов при отображении содержимого таблицы? кракозябры в mysql Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |