This content has been marked as final. Show 3 replies
Tough question. I don't know anything about Informix. I'll forward your question to someone who at least knows Oracle NLS in depth.
In order to move character data between two databases, the both database access drivers need to be configured to use the same character encoding.
For cx_oracle, you can control the client character encoding using NLS_LANG environment parameter. Since you are setting it to "_.AL32UTF8", you get 0xc3 0xbc for the "LATIN SMALL LETTER U WITH DIAERESIS" character as expected.
Although I'm not familiar with Informix, from the fact that you are getting 0xfc for the "LATIN SMALL LETTER U WITH DIAERESIS" character, it can be said that your Informix access driver is configured to use Latin-1 for the client character encodng.
You can either:
1. Change the client character set of cx_oracle to WE8ISO8859P1 (Latin-1).
2. Change the client character set of Informix to UTF-8.
You will need to figure out how to do so.
Changing to os.putenv("NLS_LANG","_.WE8ISO8859P1") heped in getting same encoding (single) for Informix and Oracle.