For SQL Developer I don't know exact solution but check settings in Tools -> Preferences -> Environment -> Encoding.
Select an encoding which supports your characters, e.g. UTF-8
Regarding your C# Code:
Microsoft .NET Framework Data Provider for Oracle is deprecated for many years, you should not use it in new projects. I think development stopped 20 years ago, thus it does not support Unicode characters - you cannot use it.
Use a modern provider, e.g. "Oracle Data Provider for .NET (ODP.NET)", you can download it from here: Oracle Data Access Components (ODAC) for Windows Downloads
In case of "Oracle Data Provider for .NET" you have to set NLS_LANG
to an encoding which support these characters, e.g. .AL32UTF8
. You can set NLS_LANG
either as Environment variable or in Registry at HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_%ORACLE_HOME_NAME%\NLS_LANG
(for 32 bit), resp. HKLM\SOFTWARE\ORACLE\KEY_%ORACLE_HOME_NAME%\NLS_LANG
(for 64 bit).
Other providers (e.g. ODP.NET Managed Driver
or Oracle OraOLEDB
) are not NLS_LANG sensitive.
See more information here: OdbcConnection returning Chinese Characters as "?"