оболочка psql использует кодовую страницу 850, windows использует 1252. Как решить изменить кодовую страницу консоли?

Я установил PostgreSQL, желая настроить новую базу данных, все идет хорошо, пока я не попытаюсь использовать знак€. И тогда я понял, что предупреждение, которое я получаю в начале, не просто так.

предупреждение, которое я получаю при запуске моей оболочки psql:

WARNING: Console code page (850) differs from Windows code page (1252)
         8-bit characters might not work correctly. See psql reference
         page "Notes for Windows users" for details.

поэтому я собираюсь сделать так, как мне сказали (от документация PostgreSQL 9.2-psql):


примечания для пользователей Windows

psql -- это построено как "консольное приложение." Поскольку в консоли Windows используется другая кодировка, чем в остальной части системы, необходимо проявлять особую осторожность при использовании 8-разрядных символов в psql. Если psql обнаружит проблемную кодовую страницу консоли, она предупредит вас при запуске. Для изменения кодовой страницы консоли, необходимы две вещи:

  • установите кодовую страницу, введя cmd.exe / c chcp 1252. (1252-это кодовая страница, подходящая для немецкого языка; замените ее своим значением.) Если вы используете Cygwin, вы можете поместить эту команду в /etc / profile.
  • установите шрифт консоли в Консоль Lucida, потому что шрифт не работает с кодовой страницей ANSI.

когда я набираю cmd.exe / c chcp 1252 я получаю синтаксическую ошибку. Таким образом, psql не распознает команду. Из отчаяния я пытался что-то сделать в cmd.сам exe тоже не работает.

Я работаю в Windows 7-64Bit.

2 ответов


каков ваш набор символов базы данных? Если это UTF-8, то перед запуском, что бы вы ни хотели в psql, просто скажите консоли использовать кодировку UTF-8: cmd.exe /c chcp 65001


У меня была такая же проблема в Windows 10.

в типе psql ! chcp

Он показал мою настройку как 850. Это я изменил на 1252, сделав следующее.

! dir показал файл runpsql.bat in C:\Program файлы \ PostgreSQL\9.6\скрипты

из windows после выхода из psql я запустил ноутбук в режиме администратора и добавил над оператором REM Run psql команду chcp 1252

теперь работает без предупреждений