This discussion is archived
3 Replies Latest reply: Nov 30, 2012 8:38 AM by gdarling - oracle RSS

ASP-OCI Charset problems

user258571 Newbie
Currently Being Moderated
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 Expert
    Currently Being Moderated
    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 Newbie
    Currently Being Moderated
    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 Expert
    Currently Being Moderated
    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

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points