13

我已经安装了 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,您可以将此命令放在/etc/profile中。
  • 将控制台字体设置为Lucida Console,因为光栅字体不适用于 ANSI 代码页。

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

我在 Windows 7 - 64Bit 中工作。

4

6 回答 6

8

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

于 2014-07-18T09:45:24.170 回答
5

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

在 psql 类型中!chcp

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

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

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

现在运行没有警告

于 2016-10-25T15:49:57.807 回答
1

我能够通过SET CLIENT_ENCODING TO 'UTF-8';在 sql bash 中运行来解决这个问题

于 2020-06-14T18:15:33.310 回答
0

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

于 2020-05-25T15:43:38.227 回答
0

我在 Windows 8 中遇到了同样的问题。您必须将 chcp 设置为 1252。使用 command cmd.exe /c chcp 1252,或者,如果您使用的是 powershell: powershell /c chcp 1252

于 2020-08-25T20:53:47.323 回答
0

据我所知,在 SQL shell 中你只需要输入\! chcp <codepage_you_need>.

不过,在那之后,您可能会遇到另一个问题:

在此处输入图像描述

为了解决这个问题,您需要转到属性(左上角)-> 字体-> 选择 Lucida 控制台。

然后输入\! chcp 1251

在那之后,一切都会好起来的。

于 2020-11-08T12:03:30.617 回答