Character sets in win32 and cygwin

Joerg Schilling
Tue Mar 7 12:23:00 GMT 2000

>From: DJ Delorie <>

>> While I do want cygwin to be as robust as possible, it is not likely that
>> I (or DJ, I assume) will have enough time to investigate something that
>> takes as much setup as this seems to entail.

>I'll trade.  I'll spend more time on random cygwin things, if someone
>else volunteers to paint my house.

Agreed: Nice idea, so you probably like to clean my rooms to give me 
some more minutes to work on open source software ;- I am working my 
whole free time on CD-recording. I have no extra time to debug software 
from other people. 

Some other notes: 

-	The problem may be observed with the German versions of Win95
	and WNT.

-	cdrecord -version prints on Solaris:

	Cdrecord-ProDVD 1.8 (sparc-sun-solaris2.4) Copyright (C) 1995-2000 Jörg Schilling

	The same source compiled on Cygwin prints:

	Cdrecord-ProDVD 1.8 (i586-pc-cygwin) Copyright (C) 1995-2000 J÷rg Schilling

>From a German CD recording news group, I got the information
that UNICODE is transferred into the "OEM" charater set for DOS box
applications. If this is true for cygwin too, cygwin will not be usable with
character sets bejond 7 bit ASCII as the code pages are different and not
visible from a POSIX application.

Here is what I got in addition:

die Referenz sagt:

Console Code Pages

"A code page is a mapping of 256 character codes to individual
characters. Different code pages include different special characters,
typically customized for a language or a group of languages. 

Associated with each console are two code pages: one for input and one
for output."

Console Application Issues

"The 8-bit console functions use the OEM code page. All other
functions use the ANSI code page by default. This means that strings
returned by the console functions may not be processed correctly by
the other functions and vice versa. For example, if FindFirstFileA
returns a string that contains certain extended ANSI characters,
WriteConsoleA will not display the string properly. 

The best long-term solution for a console application is to use
Unicode. Barring that solution, a console application should use the
SetFileApisToOEM function. That function changes relevant Win32 file
functions so that they produce OEM character set strings rather than
ANSI character set strings. "

und damit darf der programmierer raten was jetzt 8-bit concole
functions sind, was mit Unicode laeuft und was mit SetFileApisToOEM
umgestellt werden kann.

Jörg (home) Jörg Schilling D-13353 Berlin		(uni)  If you don't have iso-8859-1		(work) chars I am J"org Schilling

More information about the Cygwin-developers mailing list