9 Replies Latest reply: Jun 19, 2013 3:05 AM by 1013226 RSS

    Problem with french characters

    1013226
      We are facing this problem with french characters.
      It occurs only on Windows 8 clients:

      select 'éà€ùça' as test from dual;
      -> ?????a

      Also in our application we have similar issues.

      select *
      from v$nls_parameters
      ->
      1     NLS_LANGUAGE     AMERICAN
      2     NLS_TERRITORY     AMERICA
      3     NLS_CURRENCY     $
      4     NLS_ISO_CURRENCY     AMERICA
      5     NLS_NUMERIC_CHARACTERS     .,
      6     NLS_CALENDAR     GREGORIAN
      7     NLS_DATE_FORMAT     DD-MON-RR
      8     NLS_DATE_LANGUAGE     AMERICAN
      9     NLS_CHARACTERSET     WE8MSWIN1252
      10     NLS_SORT     BINARY
      11     NLS_TIME_FORMAT     HH.MI.SSXFF AM
      12     NLS_TIMESTAMP_FORMAT     DD-MON-RR HH.MI.SSXFF AM
      13     NLS_TIME_TZ_FORMAT     HH.MI.SSXFF AM TZR
      14     NLS_TIMESTAMP_TZ_FORMAT     DD-MON-RR HH.MI.SSXFF AM TZR
      15     NLS_DUAL_CURRENCY     $
      16     NLS_NCHAR_CHARACTERSET     AL16UTF16
      17     NLS_COMP     BINARY
      18     NLS_LENGTH_SEMANTICS     BYTE
      19     NLS_NCHAR_CONV_EXCP     FALSE
        • 1. Re: Problem with french characters
          Greg Spall
          What's your NLS_LANG setting in Windows?

          (ie check your registry, for the Oracle cilent install, there should be an NLS_LANG setting.)
          • 2. Re: Problem with french characters
            1013226
            DUTCH_THE NETHERLANDS.WE8MSWIN1252
            • 3. Re: Problem with french characters
              Greg Spall
              1010223 wrote:
              DUTCH_THE NETHERLANDS.WE8MSWIN1252
              I wonder if that's the problem, then?

              From the database side, you have:
              select *
              from v$nls_parameters
              ->
              1      NLS_LANGUAGE     AMERICAN
              2     NLS_TERRITORY     AMERICA
              9     NLS_CHARACTERSET     WE8MSWIN1252
              Now, the character set itself matches, however, the language and territory doesn't. I myself, am not 100% if that's having an effect - hopefully somebody else more knowledgeable can help :) Sorry I can't help more than that. You might try that, though. It won't hurt to change 1 PC windows registry to match the database, and see if it has an effect. If not, change it back.
              • 4. Re: Problem with french characters
                Sergiusz Wolicki-Oracle
                Do not worry about language and territory. They are irrelevant for display of characters.

                What tool do you actually use to look at the characters?


                -- Sergiusz
                • 5. Re: Problem with french characters
                  1013226
                  We use PLSQL developer (http://www.allroundautomations.com/plsqldev.html).
                  But we have te same problems in a .Net application.
                  • 6. Re: Problem with french characters
                    Sergiusz Wolicki-Oracle
                    Please, make sure you look into the right Registry key when looking at NLS_LANG. Start your .NET application or PL/SQL Developer and use a tool such as procmon.exe from Sysinternals suite to look at what Oracle DLL libraries are loaded. Look into the \BIN\ directory containing the libraries and search for the file oracle.key. This file contains the Registry branch name that you should check. Look at bot HKEY_CURRENT_USER and HKEY_LOCAL_MACHINE branches. Also, environment variables override the registry. Open the Command Prompt window, issue the SET command with no parameters and check if NLS_LANG is not among the variables. Make sure that any identified setting contains .WE8MSWIN1252.

                    Do you use ODP .NET for the .NET application? This API should actually be immune to NLS_LANG. When looking at data in the .NET application, make sure that you look at data inserted by the application itself or by Oracle SQL Developer. If you look at data inserted with PL/SQL Developer with a wrong NLS_LANG, the data is already corrupted in the database.

                    -- Sergiusz
                    • 7. Re: Problem with french characters
                      1013226
                      I will check those settings.
                      But I forgot to mention that also in SQLPlus, we have the same issue.
                      • 8. Re: Problem with french characters
                        1013226

                        When I use procmon to monitor our appliction, I could only find 1 entry with NLS_LAN:

                        HKLM\SOFTWARE\Wow6432Node\ORACLE\NLS_LANG, but the result was: NAME NOT FOUND.

                        When I use regedit, this entry doesn't exists: link


                        In the oracle.key file I found this:

                        SOFTWARE\ORACLE\KEY_OraClient11g_home1

                        But that doesn't exists either.


                        In regedit, this was the only hit for NLS_LANG:

                        HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_OraClient11g_home1: link


                        SET in command prompt didn't show a record for NLS_LANG.


                        What is the best solution? Is this a bug?

                        When I add this entry: HKLM\SOFTWARE\Wow6432Node\ORACLE\NLS_LANG, then everything seems to work. But maybe there is a better solution?

                        • 9. Re: Problem with french characters
                          1013226

                          We found out that on some machines their was also oracle.key file in de root directory (the folder where also the BIN folder exists).

                          And it was this location that was used. On my system the file didn't exists, so I added it and that solved the problem.