оболочка 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
теперь работает без предупреждений