Как поменять кодировку в sql shell
Перейти к содержимому

Как поменять кодировку в sql shell

  • автор:

PostgreSQL — Кириллица в psql под Windows

В статье пойдёт речь о том, как добиться корректного вывода кириллицы в «консоли» Windows ( cmd.exe ).

  • 1 Описание проблемы
  • 2 Решение проблемы
    • 2.1 Суть
    • 2.2 Конкретные действия
      • 2.2.1 Супер быстро и просто
      • 2.2.2 Быстро и просто
      • 2.2.3 Посложнее и подольше

      Описание проблемы

      В дистрибутив 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. Ничего этого делать не нужно, достаточно всего трёх шагов:

      1. сменить шрифт у cmd.exe ;
      2. сменить текущую кодовую страницу cmd.exe ;
      3. сменить кодировку на стороне клиента в 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 -d ВАШАБАЗА -U ВАШЛОГИН

      Кстати, обратите внимание — теперь предупреждения о несовпадении кодировок нет.

      set client_encoding='win1251';

      Всё, теперь кириллица будет нормально отображаться.

      Поменять кодировку PostgreSQL?

      Работаю с windows 7
      Ребят, начинаю работать с ROR и столкнулся сразу на проблему, после установки PostgreSQL запускаю батник runpsql.bat который лежит в scripts/runpsql.bat. Делаю соединение:
      server[localhost]: localhost
      Database [postgres]: postgres
      Port[5432]:5432
      Username[postgres]:postgres
      Password[postgres]:postgres
      и выкидывает такое предупреждение:
      5acdff8b74bd7367653187.jpeg
      пишу команду \dg
      и выводит таблицу в абракадабре
      5acdffca83fd3454586271.jpeg
      Ребят, если кто знает решение: буду очень признателен.
      всячески пытался, не получается.

      • Вопрос задан более трёх лет назад
      • 5643 просмотра

      Как «исправить» кодировку psql?

      В общем, нужно исправить это так, чтоб psql всегда была на английском языке? Как так сделать?

      5c2cf6527d75f150635354.png

      • Вопрос задан более трёх лет назад
      • 4420 просмотров

      Комментировать

      Решения вопроса 1

      fzfx

      в командной строке перед запуском psql наберите chcp 1251 .
      а ещё лучше в postgres используйте в качестве LC_COLLATE значение ru_RU.UTF-8, а в командной строке — chcp 65001 .
      также можете ознакомиться с https://superuser.com/questions/269818/change-defa.

      Ответ написан более трёх лет назад

      Нравится 1 1 комментарий

      Вывод кракозябр в консоль sql shell

      Author24 — интернет-сервис помощи студентам

      ╤яЁртър
      \? [commands] ёяЁртър яю ъюьрэфрь psql c \
      \? options ёяЁртър яю ярЁрьхЄЁрь ъюьрэфэющ ёЄЁюъш psql
      \? variables ёяЁртър яю ёяхЎшры№э√ь яхЁхьхээ√ь
      \h [╚╠▀] ёяЁртър яю чрфрээюьє SQL-юяхЁрЄюЁє; * — яю тёхь

      ┴єЇхЁ чряЁюёр
      \e [╘└╔╦] [╤╥╨╬╩└] яЁртшЄ№ сєЇхЁ чряЁюёр (шыш Їрщы) тю тэх°эхь ЁхфръЄюЁх
      \ef [╘╙═╩╓╚▀ [╤╥╨╬╩└]] яЁртшЄ№ юяЁхфхыхэшх ЇєэъЎшш тю тэх°эхь ЁхфръЄюЁх
      \ev [VIEWNAME [LINE]] яЁртшЄ№ юяЁхфхыхэшх яЁхфёЄртыхэш тю тэх°эхь ЁхфръЄюЁх
      \p т√тхёЄш ёюфхЁцшьюх сєЇхЁр чряЁюёют

      Подскажите, пожалуйста, как этого избежать.

      Добавлено через 12 минут
      LC_Collate, когда я набираю \l
      Russian_Russia.1251
      А в примере
      en_US.UTF-8
      Но для меня это пока не наводка.

      94731 / 64177 / 26122
      Регистрация: 12.04.2006
      Сообщений: 116,782
      Ответы с готовыми решениями:

      Вывод кракозябр
      . 1 . . . . Типа такого, пытался задать кодировку.

      Вывод кракозябр вместо английских букв
      Доброго времени суток. Пыталась разобраться самостоятельно, но, к сожалению, недостаточно опыта.

      qt вывод sql запроса в консоль
      подскажите пожалуйста очень нужно как вывести sql запрос в консоль #include <QCoreApplication>.

      Начал изучать базы данных в Microsoft SQL Server. вывод таблицы в консоль
      У меня есть база данных, есть табличка, где есть строки и столбцы, заполненные информацией. эта.

      1241 / 960 / 379
      Регистрация: 02.09.2012
      Сообщений: 2,937

      нужно подкорректировать запуск psql.
      если он вам все выводит в utf8, значит до запуска psql
      нужно настроить кодировку в консоли командной строки windows
      следующей командой.

      > chcp 65001 > psql -U user database database=# .

      87844 / 49110 / 22898
      Регистрация: 17.06.2006
      Сообщений: 92,604
      Помогаю со студенческими работами здесь

      Как добавить кириллицу в cmd/adb shell/sqlite3 консоль?
      При выполнении запросов из ОС Windows 7 в cmd -> adb shell -> sqlite3 консоли кириллица из записей.

      Буферизация вывода в консоль, и цветной вывод в консоль
      Потребовалось реализовать цветной вывод массивов в консоль(некоторые значения выделить зеленым).

      SQL Shell (psql)
      Здравствуйте, установил postgresql, запускаю и не знаю, что вписывать. Час уже гуглю, ( P.S.

      Вывод текст в консоль (не получается вывести текст в консоль; попытка была в разделе menu, но вывелся ужас)
      d_d1 segment ;начало сегмента данных m1 db 23, ‘=========MENU=========’, 23, ‘$’ m2 db 23, ‘| 1-.

      Или воспользуйтесь поиском по форуму:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *