I think it's obvious (and I really don't want to take a look into the Firefox source): Chromium and many other apps use a single CF_UNICODETEXT set and don't do anything else, Windows does the automatic conversion.
Firefox (and BTW, it seems also Opera 12.x for CF_TEXT) seems to use two steps: First set CF_UNICODETEXT, then (although Windows does the automatic conversion) do a 2nd step and set CF_TEXT themselves, which will override the previous automatically generated CF_TEXT.
It's enough to rely on the system codepage by doing a conversion with:
Code: Select all
WideCharToMultiByte(CP_ACP, 0, wstring, wstring_length, outbuffer, outbuffer_length, NULL, NULL);
Sure, but this whole "Locale" Windows terminology is quite a mess, so I wanted to make sure that other people will understand it clearly.MVV wrote:That's correct, and I talk about two terms: system default codepage and keyboard layout.
Like I said, the "Language for non-Unicode Programs" setting is probably not the same as a true Russian Windows, so I assumed you (or the OP) didn't have the 1251 page set.
Update:
A small test tool which will show the system codepages, the user and input locale, and copies text from commandline to clipboard, either with additional CF_TEXT correctly recoded with system cp (after CF_UNICODETEXT) or without it. This pretty much confirms what I wrote earlier.
Code: Select all
MIME-Version: 1.0
Content-Type: application/octet-stream; name="clipboard_test.rar"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="clipboard_test.rar"
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