Lorenzo has startet working on better charset support in MDB2. He has added basic support for setting charsets and collations inside field definitions in CVS already. However, there are still plenty of open questions to look at. I have only limited experience with charsets in MySQL. Lorenzo has some experience with Firebird and PostgreSQL. But this is no where near sufficient to come up with a solution that would work reasonably well across all supported drivers. Check out his charset RFC on his blog. Comments are very much appreciated, even if they just highlight problems without giving a solution just yet.
Lorenzo does not seem to allow any comments on his site so I post it here. Maye it's of use to you.
Oracle's OCILogon() also accepts the charset as the fourth parameter when opening a connection although this does not seem to be documented on php.net.