我已经安装了PostgreSQL,想要建立一个新的数据库,一切都很顺利,直到我试图使用€符号。然后我知道,我在开始时发出的警告是有原因的。
启动psql shell时的警告是:
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 Documentation 9.2 - psql):
psql构建为“控制台应用程序”。由于Windows控制台窗口使用的编码与系统的其他部分不同,因此在psql中使用8位字符时必须特别小心。如果psql检测到有问题的控制台代码页,它将在启动时发出警告。要更改控制台代码页,需要做两件事:
当我键入 cmd.exe / c chcp 1252 命令时,出现语法错误。所以psql,无法识别命令。 出于绝望,我试图在cmd.exe本身做一些事情,也不起作用。
我在Windows 7中工作 - 64位。
答案 0 :(得分:6)
您的数据库字符集是什么?如果它是UTF-8,那么在运行之前,你想在psql中使用什么,只需告诉控制台使用UTF-8编码:
cmd.exe /c chcp 65001
答案 1 :(得分:2)
我在Windows 10中遇到了同样的问题。
在psql类型中! CHCP
它将我的设置显示为850.我通过执行以下操作将其更改为1252.
! dir在C:\ Program Files \ PostgreSQL \ 9.6 \ scripts
中显示了一个文件runpsql.bat退出psql后从Windows运行我在管理员模式下运行Notebook并在REM运行psql语句上面添加命令chcp 1252
现在没有警告
答案 2 :(得分:1)
我能够通过在SQL bash中运行SET CLIENT_ENCODING TO 'UTF-8';
来解决此问题
答案 3 :(得分:0)
您也可以使用powershell /c chcp 1252
。
但是您必须在之前键入它,然后在 psql 控制台中输入。
答案 4 :(得分:0)
我在Windows 8中遇到了同样的问题。
您必须将chcp设置为1252。
使用命令cmd.exe /c chcp 1252
,或者,如果使用的是Powershell,则使用powershell /c chcp 1252
。
答案 5 :(得分:0)