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?

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.

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.

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.