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

mtj*_*ran 6 windows postgresql cmd localization codepages

我已经安装了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.
Run Code Online (Sandbox Code Playgroud)

所以我会按照我的说法去做(来自PostgreSQL Documentation 9.2 - psql):


Windows用户注意事项

psql构建为"控制台应用程序".由于Windows控制台窗口使用的编码与系统的其他部分不同,因此在psql中使用8位字符时必须特别小心.如果psql检测到有问题的控制台代码页,它将在启动时发出警告.要更改控制台代码页,需要做两件事:

  • 通过输入cmd.exe/c chcp 1252设置代码页.(1252是适合德语的代码页;请将其替换为您的值.)如果您使用的是Cygwin,则可以将此命令放在/ etc/profile中.
  • 将控制台字体设置为Lucida Console,因为光栅字体不适用于ANSI代码页.

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

我在Windows 7 - 64Bit工作.

小智 6

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


小智 5

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

在 psql 类型中!奇普

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

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

退出 psql 后从 windows 我以管理员模式运行 Notebook 并在 REM Run psql 语句上方添加命令 chcp 1252

现在在没有警告的情况下运行