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

19,242

Solution 1

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

Solution 2

I had the same problem in Windows 10.

In psql type ! chcp

it revealed my setting as 850. This I changed to 1252 by doing the following.

! dir revealed a file runpsql.bat in C:\Program Files\PostgreSQL\9.6\scripts

From windows after exiting psql I ran Notebook in Administrator mode and added above the REM Run psql statement the command chcp 1252

Now runs without the warnings

Solution 3

I was able to fix this by running SET CLIENT_ENCODING TO 'UTF-8'; in the sql bash

Share:
19,242

Related videos on Youtube

mtjiran
Author by

mtjiran

Updated on September 15, 2022

Comments

  • mtjiran
    mtjiran over 1 year

    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.

    • Codism
      Codism over 10 years
      Have you tried start the cmd.exe first then chcp 1252 (or chcp 850, which ever your psql shell asks)? It seems like you typed the command in psql shell. You should use windows run (Win+R) to type in the command and start psql shell in that console window.
  • user2361174
    user2361174 about 7 years
    This works when I double-click runpsql.bat from the file system, but the warning still shows up when running psql from the command line, do you know how to stop this?
  • aurumpurum
    aurumpurum almost 3 years
    This didn't work for me. My password was broken after using this command and I had to reinstall postgres again.