I've got an oracle database which NLS_CHARACTERSET is AL32UTF8. I've got an application (ASP.NET C#) on a client which NLS_LANG is FRENCH_FRANCE.WE8MSWIN1252.
The accented characters are well displayed on the application. However, when there is an accented character in a WHERE clause, oracle doesn't find the data, although it's there.
I found that "é" was written in the database as "c3a9". This is done on the server (SqlDeveloper) so it works fine because there is no conversion yet between character sets.
However, in my application on the client, an SQL request with a clause WHERE which contains an accented character doesn't work. For exemple I have this request :
string request = "UPDATE fonction SET libelle = '" + new_libelle.Replace("'", "''") + "' WHERE libelle = '" + old_libelle.Replace("'", "''") + "'";
If there is an accented character in old_libelle, oracle doesn't find the data and so the update is not executed.
I cannot change the NLS_CHARACTERSET of the database because it's used by many other applications and I don't want side effects to appear.
How to fix this?