psql shell uses code page 850, windows uses 1252. How to solve change console code page?

mtjiran picture mtjiran · Oct 3, 2013 · Viewed 16.6k times · Source

I have installed PostgreSQL, wanting to set up a new database, everything is going fine, until I am trying to use the € sign. And then I knew, that warning I get in the beginning is for a reason.

The warning I am getting at starting up my psql shell is:

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.

So I am going to do as I am told (from PostgreSQL Documentation 9.2 - psql):


Notes for Windows Users

psql is built as a "console application". Since the Windows console windows use a different encoding than the rest of the system, you must take special care when using 8-bit characters within psql. If psql detects a problematic console code page, it will warn you at startup. To change the console code page, two things are necessary:

  • Set the code page by entering cmd.exe /c chcp 1252. (1252 is a code page that is appropriate for German; replace it with your value.) If you are using Cygwin, you can put this command in /etc/profile.
  • Set the console font to Lucida Console, because the raster font does not work with the ANSI code page.

When I type the cmd.exe /c chcp 1252 command I get a syntax error. So psql, doesn't recognize the command. Out of desperation, I was trying to do something in cmd.exe itself, does not work either.

I work in Windows 7 - 64Bit.

Answer

Nuno Lourenço picture Nuno Lourenço · Jul 18, 2014

What is your database Character Set? If it is UTF-8, then before running, what ever you want in psql, just tell the console to use the UTF-8 encoding: cmd.exe /c chcp 65001