psql shell使用代码页850,windows使用1252.如何解决更改控制台代码页?

我已经安装PostgreSQL,想build立一个新的数据库,一切都很好,直到我试图使用欧元符号。 然后我知道,我得到的这个警告是有原因的。

我在启动我的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 ):


Windows用户注意事项

psql构build为“控制台应用程序”。 由于Windows控制台窗口使用与系统其余部分不同的编码,因此在psql中使用8位字符时必须格外小心。 如果psql检测到有问题的控制台代码页,它会在启动时警告你。 要更改控制台代码页,有两件事是必要的:

  • 通过inputcmd.exe / c chcp 1252来设置代码页。 (1252是适合于德语的代码页;用你的值replace它。)如果你使用的是Cygwin,你可以把这个命令放在/ etc / profile中
  • 将控制台字体设置为Lucida控制台 ,因为光栅字体不能与ANSI代码页一起使用。

当我键入cmd.exe / c chcp 1252命令时,出现语法错误。 所以psql,不能识别这个命令。 出于绝望,我试图在cmd.exe本身做一些事情,也不pipe用。

我在Windows 7 – 64Bit工作。

什么是数据库字符集? 如果是UTF-8,那么在运行之前,psql中只要告诉控制台使用UTF-8编码: cmd.exe /c chcp 65001

我在Windows 10中遇到了同样的问题。

在psql中输入! CHCP

它显示了我的设置为850.我通过执行以下操作更改为1252。

! dir在C:\ Program Files \ PostgreSQL \ 9.6 \ scripts中显示一个文件runpsql.bat

在退出psql之后,我在管理员模式下运行Notebook并在REM运行psql语句之上添加了命令chcp 1252

现在运行没有警告