3 Replies Latest reply: Nov 30, 2012 10:38 AM by gdarling - oracle RSS

    ASP-OCI Charset problems

    user258571
      Hi,
      i've a 11.2 database with we8dec charset.
      Developer use ASP and OCI to connect to the database and insert into tables.
      Some char are not converted well, like this "€".
      Application machine use client 11.2 and i set NLS_LANG=AMERICAN_AMERICA.WE8DEC in the registry but nothing.
      Is there any modification application side to do?

      Database server is AIX
      Application Server is windows 2008.


      Thanks

      Edited by: 842366 on 29-nov-2012 9.09
        • 1. Re: ASP-OCI Charset problems
          gdarling - oracle
          As best I can tell, "€" is not defined in WE8DEC .. http://www.columbia.edu/kermit/dec-mcs.html
          You'll want to use a database characterset that can support the characters you actually need to store.

          Generally AL32UTF8 is recommended these days as it supports a huge number of languages and characters, but if you want to stick to a single byte characterset for some reason, WE8MSWIN1252 is frequently used as well.

          You may be able to figure out some sort of hack to be able to put the character in and get it back out looking the same, but unless the middle part (ie, the storage in the database) is correct and valid, all bets are off and you're just asking for trouble.

          Greg
          • 2. Re: ASP-OCI Charset problems
            user258571
            gdarling wrote:
            As best I can tell, "€" is not defined in WE8DEC .. http://www.columbia.edu/kermit/dec-mcs.html
            You'll want to use a database characterset that can support the characters you actually need to store.

            Generally AL32UTF8 is recommended these days as it supports a huge number of languages and characters, but if you want to stick to a single byte characterset for some reason, WE8MSWIN1252 is frequently used as well.

            You may be able to figure out some sort of hack to be able to put the character in and get it back out looking the same, but unless the middle part (ie, the storage in the database) is correct and valid, all bets are off and you're just asking for trouble.

            Greg
            Hi Greg,
            thank you.

            Developer report that conversion works fine with PHP.
            PHP insert "€" in database, database store a strange char but PHP read "€" from database. He set NLS_LANG in php oci connection.
            In ASP i don't know how it can do.
            • 3. Re: ASP-OCI Charset problems
              gdarling - oracle
              Hi,

              Don't let the observation that "but when I insert and retrieve it via ________ I get it back fine" influence you. If the database characterset doesn't support the characters, you have invalid data in the database. I'm assuming you're using a database here because you want to permanently store valid data, and not because you want to use it as a temporary strorage area for an application, without concern as to whether any other application can access it?

              If you can show me that we8dec has a codepoint for "€" then it merits further investigation. Otherwise you're just wasting your time, and risking your data.

              Greg