2009/7/27 Rodion Gorkovenko: > You suppose this is windows, who responsible for this substitution? This > thought had not visited my head... I thought substitution is performed by > cygwin...
It's done by the Windows text rendering functions. It's fairly useful actually as a fallback, because at least you end up with something readable. > As I wrote earlier, I preset proper codepage in windows console (by mode con > cp select=1251 or 866 or 437 at last) - and when I am trying to view file, > written in CP1251 by > > cp msg.txt con - then I view it all right, > but with > cp msg.txt /dev/tty - I view it as a sequence of "aaeieii?oeiaaaieieia" Right. It would appear that /dev/tty assumes the text is in ISO-8859-1 or CP1252 and sends it to the console as such. But since the console is set to 1251, Windows' substitution mechanism kicks in and replaces anything that looks like an 'A' in 1252 with ASCII 'A', as that displays correctly in 1251. Possible solutions: 1. Change the system-wide non-Unicode codepage setting in the Regional&Languages control panel. 2. Set the console codepage before invoking bash in cygwin.bat. 3. Use MinTTY and set the codepage you want on the "Text" page of its options dialog. 4. Install Cygwin 1.7 and use the locale mechanism documented at http://cygwin.com/1.7/cygwin-ug-net/setup-locale.html Good luck, Andy -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple