I'm running PL/SQL Developer under Wine in order to do development work with an Oracle database. I created a procedure that, at one point, used extended characters (things like ??? and so on). When that was compiled, however, all those characters were stored simply as question marks, which is Oracle's way of telling you that there is a code page mismatch (i.e., that your client has submitted a character code for which there is no valid match in the database character set). If I was running natively on Windows, I would at this point issue the command chcp 850 and re-launch PL/SQL Developer. Now the client tool runs with the right code page, the extended characters get stored correctly (I fired up Windows in a virtual machine to prove this). However, I don't know what the equivalent is in Wine, or if such a code page change is even possible there. I know it's not a problem with my Linux install itself, because if run the java-based SQL Developer application, that allows me to type in and store the correct extended descriptions, natively in Linux. The problem only arises when I run an application with Wine. If anyone can tell me how to configure/re-configure/dynamically alter the code page that Wine apps run in, I would be grateful.
dizwell wrote:> However, I don't know what the equivalent is in Wine, or if such a code page change is even possible there.Set "LANG" to the locale you need.
Well, thanks for that, but I think the point is that the specifics don't matter. I'd just like to be able to set something that PL/SQL Developer actually picks up on! I did wine regedit, for example, in order to set the HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control/Nls/Codepage/OEMCP value to 1252. I set it no problem... but when I launch PL/SQL Developer after doing so, there is no change in the behaviour... so I go and do another wine regedit and OEMCP has reverted to 437 (which is the US ASCII code page and is the fundamental reason why my extended characters won't pass properly to the database). So, whether it's a code page 850, 1252 or 65001 is really immaterial. Once I find a way to *set* the code page properly, then I can experiment as to which code page produces the best result or is "the most modern" encoding. But I am falling at the first hurdle: How do I set the correct code page, persistently, so that all Wine apps pick it up? And setting $LANG is not the answer (because I've already tried export LANG=en_AU.ISO8859-1, which matches the database character set precisely, and it made not one bit of difference). Can anyone tell me why a change to the registry made as described above is not persistent? Is there a Wine.cfg file or something I need to edit instead?