Распознавание голоса и речи на C#
UnmanagedCoder 05.05.2025
Интеграция голосового управления в приложения на C# стала намного доступнее благодаря развитию специализированных библиотек и API. При этом многие разработчики до сих пор считают голосовое управление. . .
Реализация своих итераторов в C++
NullReferenced 05.05.2025
Итераторы в C++ — это абстракция, которая связывает весь экосистему Стандартной Библиотеки Шаблонов (STL) в единое целое, позволяя алгоритмам работать с разнородными структурами данных без знания их. . .
Разработка собственного фреймворка для тестирования в C#
UnmanagedCoder 04.05.2025
C# довольно богат готовыми решениями – NUnit, xUnit, MSTest уже давно стали своеобразными динозаврами индустрии. Однако, как и любой динозавр, они не всегда могут протиснуться в узкие коридоры. . .
Распределенная трассировка в Java с помощью OpenTelemetry
Javaican 04.05.2025
Микросервисная архитектура стала краеугольным камнем современной разработки, но вместе с ней пришла и головная боль, знакомая многим — отслеживание прохождения запросов через лабиринт взаимосвязанных. . .
Шаблоны обнаружения сервисов в Kubernetes
Mr. Docker 04.05.2025
Современные Kubernetes-инфраструктуры сталкиваются с серьёзными вызовами. Развертывание в нескольких регионах и облаках одновременно, необходимость обеспечения низкой задержки для глобально. . .
Создаем SPA на C# и Blazor
stackOverflow 04.05.2025
Мир веб-разработки за последние десять лет претерпел коллосальные изменения. Переход от традиционных многостраничных сайтов к одностраничным приложениям (Single Page Applications, SPA) — это. . .
Реализация шаблонов проектирования GoF на C++
NullReferenced 04.05.2025
«Банда четырёх» (Gang of Four или GoF) — Эрих Гамма, Ричард Хелм, Ральф Джонсон и Джон Влиссидес — в 1994 году сформировали канон шаблонов, который выдержал проверку временем. И хотя C++ претерпел. . .
C# и сети: Сокеты, gRPC и SignalR
UnmanagedCoder 04.05.2025
Сетевые технологии не стоят на месте, а вместе с ними эволюционируют и инструменты разработки. В . NET появилось множество решений — от низкоуровневых сокетов, позволяющих управлять каждым байтом. . .
Создание микросервисов с Domain-Driven Design
ArchitectMsa 04.05.2025
Архитектура микросервисов за последние годы превратилась в мощный архитектурный подход, который позволяет разрабатывать гибкие, масштабируемые и устойчивые системы. А если добавить сюда ещё и. . .
Многопоточность в C++: Современные техники C++26
bytestream 04.05.2025
C++ долго жил по принципу «один поток — одна задача» — как старательный солдатик, выполняющий команды одну за другой. В то время, когда процессоры уже обзавелись несколькими ядрами, этот подход стал. . .
развернутом в докере, при попытки установления подключения падает ошибка: пользователь «UserName» не прошёл проверку подлинности (по паролю) (pgjdbc: autodetected server-encoding to be windows-1251, if the message is not readable, please check database logs and/or host, port, dbname, user, password, pg_hba.conf), сам контейнер поднялся, у друга все работает корректно, в чем может быть проблема?
12
ответов
например, в неверном пароле
Конфиги не менялись и пароль указывается тот же что и прописан в контейнере
Данил Кринж
Конфиги не менялись и пароль указывается тот же чт…
ну это энвы контейнера, не факт что они применились к базе
Виталий
ну это энвы контейнера, не факт что они применилис…
а они могли не примениться, если задан POSTGRES_PASSWORD?
Jan
а они могли не примениться, если задан POSTGRES_PA…
например, если база уже была и при запуске образа с новыми энвами, к базе ничего не применится
Виталий
например, если база уже была и при запуске образа …
сделали
docker-compose stop
docker-compose rm -v
docker volume prune
docker-compose pull
docker-compose up -d
БД очистилась, при этом @DaKush все еще не может подключиться к БД, а я могу
А может быть такое, что запросы из подсети пользователя, просто на контейнере блокируются?(из разряда allowed:172.0.0.1/32(сначала включил все подсети 8ой-что крайне глупо), или что-то подобное?
Просто судя по проблеме, я бы копал в этом направлении.
Ну из разряда бана всех ip в локальной подсети, кроме гейта? Если вы на 100% уверены в правильности пароля, и в том, что кодировка корректная
Lislas Оказиcлав
А может быть такое, что запросы из подсети пользов…
Никаких таких правил для контейнера нет, в postgresql.conf listen_addresses = ‘*’
pg_hba.conf мы не прокидываем, там стандартный выставляется
Jan
сделали
docker-compose stop
docker-compose rm -v
…
значит у вас база была в волюме и вы его дропнули, и занового создали — это уже хорошо. Случайно не стоит ещё какой-то постргрес куда и пытается подключится DBeaver?
а даже хз, просто недавно у знакомого поднялся контейнер с постгрёй на 5432, и даже не ругнулся, что порт был занят другим контейнером (винда докер десктоп) 😑
Виталий
а даже хз, просто недавно у знакомого поднялся кон…
У меня не ругался, но да был занят, получил процессы по порту и убил их, это помогло, спасибо
Проблема с кодировкой Windows-1251 в командной строке PSQL (терминальный клиент для работы с СУБД PostgreSQL) остаточно распространенное явление, и решить эту проблему можно несколькими способами.
1 способ: установка кодировки Windows-1251 в PSQL
Открываем утилиту PSQL. Сначала вводим данные для авторизации, а затем команду \l, чтобы вывести список всех баз данных. И как мы видим, есть проблема с отображением символов в командной строке.
Чтобы установить кодировку Windows-1251 для текущего сеанса в окне терминала PSQL необходимо ввести следующую команду — \! chcp 1251, и подтвердить её нажатием клавиши Enter.
Снова выполняем команду \l, и видим, что проблема с кодировкой решена. Недостаток этого способа заключается в том, что придётся вводить эту команду каждый раз при открытии нового окна терминала PSQL.
2 способ: установка кодировки в файле runpsql.bat
Находим ярлык SQL Shell (psql) в меню — Пуск, нажимаем правой кнопкой мыши и переходим к расположению файла. Либо сразу открываем директорию, в которую установлен PostgreSQL и переходим в каталог — scripts.
Сейчас необходимо открыть файл runpsql.bat в текстовом редакторе для последующего редактирования. Данное действие нужно выполнить от имени администратора.
Сразу после команды @echo off добавляем команду chcp 1251 она будет устанавливать кодировку Windows-1251 для каждого открытого окна PSQL. Сохраняем внесенные изменения.
Открываем окно терминала PSQL и сразу видим, что для окна уже установлена кодировка Windows-1251.
Метки: PostgreSQL, PSQL.
Проблема проявляется только, если запускать проект в linux(ubutu, netbeans, если это важно).
База firebird запущена в windows, если проект запущен так же в windows, то данные из базы отображаются «корректно», если в linux, то — «кракозябрами».
В настройках jdbc «везде» стоит utf8(изменение настроек на win1251 не влияют на результат), данные в базе win1251.
Если приложение в netbeans(с теми же настройками) запущено в windows всё корректно.
Условие:
Изменить кодировку в базе нельзя.
-
Вопрос задан
-
9018 просмотров
jdbc.databaseurl=jdbc:firebirdsql:127.0.0.1/0000:D:/base/base.fdb?encoding=utf8&useUnicode=true&characterEncoding=utf8
127.0.0.1 - ip сервера
0000 - порт
D:/base/base.fdb - путь до базы(сервер на windows)
encoding=utf8
Так вот я испробовал много различных вариантов указания кодировки и не только в данном конфиге, и случайно наткнулся на параметр encoding, и вот именно он сработал установив его значением utf8.
Самое интересное что это решение работает при запуске проекта под linux(ubuntu), но при этом если проект запустить с этим параметром на windows, то там начинает проявляться именно та проблема с кодировкой которую я и пытался побороть и следовательно параметры после «пути до базы» приходится там удалять, а под linux ставить обратно.
Пригласить эксперта
Актуально ещё или нет..
Для нормального отображения данных из Firebird я использую Properties для параметров подключения
String conString = "jdbc:firebirdsql:192.168.0.5:bsklad";
...
paramConnection = new Properties();
paramConnection.setProperty("user", "beginner");
paramConnection.setProperty("password", "mayby");
paramConnection.setProperty("encoding", "WIN1251");
...
Class.forName("org.firebirdsql.jdbc.FBDriver");
connection = DriverManager.getConnection(conString, paramConnection);
Где крутится база не имеет значения! Имеет значение кодировка самой базы.
Я бы посмотрел в настройки Locale при запуске на Windows и на Linux.
Конвертить при получении.
-
Показать ещё
Загружается…
Минуточку внимания
Материал из Кафедра ИУ5 МГТУ им. Н.Э.Баумана, студенческое сообщество
В статье пойдёт речь о том, как добиться корректного вывода кириллицы в «консоли» Windows (cmd.exe).
Описание проблемы
В дистрибутив PostgreSQL, помимо всего прочего, для работы с СУБД входит:
- приложение с графическим интерфейсом
pgAdmin; - консольная утилита
psql.
При работе с psql в среде Windows пользователи всегда довольно часто сталкиваются с проблемой вывода кириллицы. Например, при отображении результатов запроса к таблице, в полях которых хранятся строковые данные на русском языке.
Ну и зачем тогда работать с psql, кому нужно долбить клавиатурой в консольке, когда можно всё сделать красиво и быстро в pgAdmin? Ну, не всегда pgAdmin доступен, особенно если речь идёт об удалённой машине. Кроме того, выполнение SQL-запросов в текстовом режиме консоли — это +10 к хакирству.
Решение проблемы
Версии ПО:
- MS Windows 7 SP1 x64;
- PostgreSQL 8.4.12 x32.
На сервере имеется БД, созданная в кодировке UTF8.
Суть
Суть проблемы в том, что cmd.exe работает (и так будет до скончания времён) в кодировке CP866, а сама Windows — в WIN1251, о чём psql предупреждает при начале работы:
WARNING: Console code page (866) differs from Windows code page (1251)
8-bit characters might not work correctly. See psql reference
page "Notes for Windows users" for details.
Значит, надо как-то добиться, чтобы кодировка была одна.
В разных источниках встречаются разные рецепты, включая правку реестра и подмену файлов в системных папках Windows. Ничего этого делать не нужно, достаточно всего трёх шагов:
- сменить шрифт у
cmd.exe; - сменить текущую кодовую страницу
cmd.exe; - сменить кодировку на стороне клиента в
psql.
Конкретные действия
Супер быстро и просто
Запускаете cmd.exe, оттуда psql:
psql -d ВАШАБАЗА -U ВАШЛОГИН
Далее:
psql \! chcp 1251
Быстро и просто
Запускаете cmd.exe, оттуда psql:
psql -d ВАШАБАЗА -U ВАШЛОГИН
Вводите пароль (если установлен) и выполняете команду:
set client_encoding='WIN866';
И всё. Теперь результаты запроса, содержащие кириллицу, будут отображаться нормально. Но есть небольшой косяк:
Потому предлагаем ещё способ, который этого недостатка лишён.
Посложнее и подольше
Запустить cmd.exe, нажать мышью в правом левом верхнем углу окна, там Свойства — Шрифт — выбрать Lucida Console. Нажать ОК.
Выполнить команду:
chcp 1251
В ответ выведет:
Текущая кодовая страница: 1251
Запустить psql;
psql -d ВАШАБАЗА -U ВАШЛОГИН
Кстати, обратите внимание — теперь предупреждения о несовпадении кодировок нет.
Выполнить:
set client_encoding='win1251';
Он выведет:
SET
Всё, теперь кириллица будет нормально отображаться.
Проверяем:
