title: How to get special characters using an odbc source to an Oracle database using c#?
body: <p>I have an ODBC datasource to an Oracle database.
  The table I select data from has <code>varchar2</code> columns containing e.g "<strong>kg/m³</strong>" or "<strong>°C</strong>".</p>
  
  <p>Now using an ODBCConnection in my c# application, the <code>OdbcDataReader</code> returns "<strong>kg/m?</strong> and "<strong>?C</strong>".</p>
  
  <p>Checking the NLS parameters with:</p>
  
  <pre><code>SELECT * 
  FROM V$NLS_PARAMETERS 
  WHERE PARAMETER IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');
  </code></pre>
  
  <p>returns <code>AL32UTF8</code> for <code>NLS_CHARACTERSET</code> and <code>AL16UTF16</code> for <code>NLS_NCHAR_CHARACTERSET</code>.</p>
  
  <p>If I change the column type to <code>NVARCHAR</code>, the <code>OdbcDataReader</code> returns the right value.
  But changing the table columns is not an option because the database is also used by other applications.</p>
  
  <p>Is there any way to get the right value by setting any parameter on the connection, command or reader objects?</p>
  
  <p>Thanks, Cew3</p>
  
  <p>Edit:
  Setting the system environment <code>NLS_LANG</code> to <code>GERMAN_GERMANY.AL32UTF8</code> (<strong>and rebooting the machine!</strong>) solved the problem! </p>
  
  <p><em>Thank you all for the hints/comments!</em></p>