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

问题描述 投票:7回答:3

我已经安装了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文档9.2 - psql):


Windows用户须知

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

  • 设置代码页,输入 cmd.exe c chcp 1252. (1252是一个适合德语的代码页,用你的值代替它。) 如果你使用的是Cygwin,你可以把这个命令放在 etcprofile.
  • 将控制台字体设置为 露西达控制台因为栅格字体不能与ANSI代码页一起使用。

当我输入 cmd.exe c chcp 1252 命令,我得到一个语法错误。所以psql,不承认这个命令。无奈之下,我是想在cmd.exe本身做一些事情,也不行。

我的工作环境是Windows 7 - 64Bit。

windows postgresql cmd localization codepages
3个回答
7
投票

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


3
投票

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

在psql中输入 !

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

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

从windows中退出psql后,我在Administrator模式下运行Notebook,并在REM运行psql语句上面添加了命令chcp 1252。

现在运行时没有警告


0
投票

您也可以使用 powershell /c chcp 1252.但你必须要打它 之前 进入 psql 控制台。


0
投票

我可以通过运行 SET CLIENT_ENCODING TO 'UTF-8'; 在sql bash中

© www.soinside.com 2019 - 2024. All rights reserved.