Russian Qt Forum
Ноябрь 01, 2024, 02:18
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Базы данных
>
Кодировка сообщений об ошибках в PostgreSQL
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Кодировка сообщений об ошибках в PostgreSQL (Прочитано 7951 раз)
AlexEx
Чайник
Offline
Сообщений: 76
Кодировка сообщений об ошибках в PostgreSQL
«
:
Март 04, 2021, 18:04 »
Вопрос не совсем Qt-шный, но, может, кто подскажет. Есть примитивная тестовая программа, работающая с сервером PostgreSQL через библиотеку libpqxx. Ошибки pqxx::connection прилетают в кодировке Windows-1251, ошибки pqxx::work – UTF-8. Хотелось бы иметь все ошибки в единой кодировке или хотя бы понять, когда какую использовать для вывода пользователю. В файле postgresql.conf есть нужная настройка lc_messages =…, меняющая, по идее, язык и кодировку. Вот только кодировку pqxx::connection для русского языка сменить не удается, т.е. lc_messages = 'Russian_Russia.1251' – русский язык, кодировка Win 1251, lc_messages = 'en_us.utf-8' – английский язык, lc_messages = ''Russian_Russia.utf-8' – все та же Win 1251.
Записан
Hellraiser
Бывалый
Offline
Сообщений: 451
Re: Кодировка сообщений об ошибках в PostgreSQL
«
Ответ #1 :
Март 04, 2021, 18:48 »
Это общая проблема организации подключения к PostgreSQL, в том числе и в Qt. До момента подключения драйвер не знает кодировки сервера, которую можно узнать только после подключения, и считает что используется кодировка Win-1251 (в Qt используется QString::fromLocal8Bit). Если сам сервер настроен на UTF-8 и использует язык, отличный от en, то будут крякозябры.
«
Последнее редактирование: Март 04, 2021, 18:50 от Hellraiser
»
Записан
AlexEx
Чайник
Offline
Сообщений: 76
Re: Кодировка сообщений об ошибках в PostgreSQL
«
Ответ #2 :
Март 04, 2021, 19:28 »
Тогда не совсем понятно, если lc_messages = 'Russian_Russia.1251', то почему ошибки pqxx::work в UTF-8. В кодировке БД? Она, действительно, UTF-8. Язык в зависимости от lc_messages меняется, а кодировка - нет. Что зависит от кодировки, указанной в lc_messages?
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...