Может нелепый вопрос, но ни в документации ни в FAQ ничего похожего не нашел.
Есть проблемы с отображением русскоязычного текста в консоли (кодировка БД - WIN1251)
При запуске консоль выдает варнинг: Console code page differs from Windows code page, 8-bit craracters might not work correctly. See psql reference page "Notes for Windows users" for delails. (страничку это не смог найти как ни искал), полагаю что проблема в различии кодировки консоли и БД.
Можно-ли как-нибудь поменять кодировку консоли ну или как-то это исправить, если причина в другом?
Можно: SET CLIENT_ENCODING TO
Можно:
кодировка может быть, например WIN1251, и т.д. см. список поддерживаемых кодировок:
http://postgresql.ru.net/manual/multibyte.html#MULTIBYTE-CHARSET-SUPPORTED
Спасибо, но не помогло, это
Спасибо, но не помогло, это уже пробовал) Все равно иероглифы вместо русских букв.
Не ту кодировку выбрали вот и
Не ту кодировку выбрали вот и всё. Всем помогает, вам нет?
Дело в том, что она не
Дело в том, что она не меняется, как была 866, так и остается, может я куда-то не туда ввожу команду? (пробовал в саму консоль и в граф. интерфейсе, команда выполняется (за ~15мс), но увы.
Так в psql надо команду
Так в psql надо команду вводить, при чём здесь консоль?
Команда переключает вывод символов PostgreSQL в ту кодировку, которую вы укажете.
При этом на содержимое БД это никак не влияет.
Странно, может это все руки,
Странно, может это все руки, поступаю так:
Запускаем PSQL Shell (psql), после ввода названия сервера, порта, БД, пользователя и пароля..
music1=# SET CLIENT_ENCODING TO 'WIN1251';
(выводятся по прежнему кракозябры)
Еще пробовал
music1=# \encoding win1251; (тоже нет)
и менять строку #client_encoding = sql_ascii (в postgresql.conf) на #client_encoding = win1251
(все как раньше) Хотя результаты запросов, если их вводить в pgAdmin (кнопка "выполнить пользовательские sql-запросы"), выводятся нормально.
Простите, а вы что не в
Простите, а вы что не в курсе, что консоль Windows работает в кодировке CP866? (кодировке DOS, а не Windows. Это из-за русских имён файлов сложилось по исторической причине)
Чтобы не создавать новую тему, добавлю вопрос сюда
Так все таки, как сделать, чтобы в консоли psql были русские буквы? У мене не получается.
По порядку рассказываю, что я делаю.
1. Система Windows XP. Кодирока консоли 866.
2. Во время инсталяции на вопрос про "Locale" я оставил [Default locale].
3. Пробую войти в консоль psql. После ввода server, database, port, username, пароль я получаю:
4. Нашел этот "Notes for Windows users" (здесь), там вообще написано то, что вводить нужно не в консоль psql, а в виндовскую cmd:
Set the code page by entering cmd.exe /c chcp 1252.
Команда cmd.exe /c chcp 1252 явно не для консоли psql. Значит ответ из официального мануала в данном случае не решает проблему.
5. Прочитав эту ветку пробую сначала посмотреть какая кодировка стотит в psql изначально (я еще ничего не менял):
Т.е. стоит 1251. А у моей консоли - 866. Пробую поставить WIN866:
Получаю кракозябры.
Пробовал обратно ставить WIN1251, пробовал UTF8. Ничего не помогает, кракозябры и все.
Шрифт консоли переключал с "Точечные шрифты" на "Lucinda Console". Тоже не помогает.
Что я делаю не так? Как его "русифицировать"?
Спасибо.
SET CLIENT_ENCODING
SET CLIENT_ENCODING устанавливает кодировку для вывода значений из БД, а не хелпа.
Воспользуйтесь рекомендацией
Воспользуйтесь рекомендацией "Set the code page by entering cmd.exe /c chcp 1252."
т.е. запускаете cmd.exe, набираете "chcp 1251", далее enter. Выйдет сообщение
Текущая кодовая страница: 1251
После этого запускаете psql.
Кодовую страницу необходимо устанавливать при каждом запуске cmd.
Прочитал все что было выше, в
Прочитал все что было выше, в конечном итоге это помогает только самого warning-а. В итоге после смены кодировки у меня становится не читаемый ранее читаемый текст, а не читаемый текст из help-a по команде \? остается кракозяброй. При всем, при том, переводчики кодировки утверждают, что действительно для перевода help-a требовалось заменить CP866 → CP1251. В следствии чего вопрос - как перевести хелп на читабельный язык в консоли?
Если надо будет копировать какой-то кусок текста из консоли сюда - скажите.
Кодировка консоли
Всё проще простого. Заходишь в консоль, набираешь:
\! chcp 1251
и всё!
Шрифт, действительно, удобнее выбрать Consolas. Посмотреть можно здесь: http://1drv.ms/1vARg2t.