<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/install-win32.sgml,v 1.12 2003/09/29 18:18:35 momjian Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/install-win32.sgml,v 1.13 2003/09/29 18:21:33 momjian Exp $
 -->
 
 <chapter id="install-win32">
   C++, just right-click on the project and choose to add it.)
  </para>
 
+ <para>
+  <application>psql</application> is compiled as a "console application". As
+  the win32 console windows use a different encoding than the rest of the
+  system, you must take special care when using 8-bit characaters (eg. german
+  Umlauts) at the <application>psql</application> prompt. When
+  <application>psql</application> detects a problematic console codepage, it
+  will warn you at startup. To change the console codepage, two things are
+  neccessary:
+
+  <variablelist>
+   <varlistentry>
+    <listitem>
+      Set the codepage with <userinput>cmd.exe /c chcp 1252</userinput>
+     (1252 is the german value, replace it with your value). If you are using
+     cygwin, you can put this command in <filename>/etc/profile</filename>.
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <listitem>
+      Set the console font to "Lucida Console", because the raster font
+     does not work with the ANSI codepage.
+    </listitem>
+   </varlistentry>
+  </variablelist>
+
+ </para>
+
 </chapter>
 
 <!-- Keep this comment at the end of the file
 
  *
  * Copyright (c) 2000-2003, PostgreSQL Global Development Group
  *
- * $Header: /cvsroot/pgsql/src/bin/psql/startup.c,v 1.79 2003/08/07 21:11:58 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/startup.c,v 1.80 2003/09/29 18:21:33 momjian Exp $
  */
 #include "postgres_fe.h"
 
 static void printSSLInfo(void);
 #endif
 
+#ifdef WIN32
+static void
+           checkWin32Codepage(void);
+#endif
 
 /*
  *
                   pset.progname, PG_VERSION);
 #ifdef USE_SSL
            printSSLInfo();
+#endif
+#ifdef WIN32
+           checkWin32Codepage();
 #endif
        }
 
 }
 
 #endif
+
+
+
+/*
+ * checkWin32Codepage
+ *
+ * Prints a warning when win32 console codepage differs from Windows codepage
+ */
+#ifdef WIN32
+static void
+checkWin32Codepage(void)
+{
+   unsigned int wincp, concp;
+
+   wincp = GetACP();
+   concp = GetConsoleCP();
+   if (wincp != concp) {
+     printf("Warning: Console codepage (%u) differs from windows codepage (%u)\n"
+            "         8-bit characters will not work correctly. See PostgreSQL\n"
+            "         documentation \"Installation on Windows\" for details.\n\n",
+            concp, wincp);
+   }
+}
+#endif