Euro (€) characters are inserted into the database as upside down

Discussion of open issues, suggestions and bugs regarding Entity Framework support in ADO.NET Data providers
Post Reply
ITLV
Posts: 2
Joined: Tue 26 Feb 2019 13:39

Euro (€) characters are inserted into the database as upside down

Post by ITLV » Tue 26 Feb 2019 13:48

Since we moved to Direct Mode, we see that Euro (€) characters are inserted into the database as upside down question marks.

This connection string worked before:
- connstr = "Data Source=DP00V.WORLD;User ID=APP_DPL;Password=xxx";

These connection strings work, but with the character problems:
- connstr = "Data Source=dbbd01.dg3.be;User ID=APP_DPL;Password=xxx;Pooling=true;Connection Lifetime=1800;Direct=true;Port=1522;SID=DP00V";
- connstr = "Data Source=dbbd01.dg3.be;User ID=APP_DPL;Password=xxx;Pooling=true;Connection Lifetime=1800;Direct=true;Port=1522;SID=DP00V;Unicode=true";

We are using Entity Framework 6.0 and Devart DotConnect.
Versions:
- Devart.Data: 5.0.1704.0
- Devart.Data.Oracle: 9.4.280.0

Pinturiccio
Devart Team
Posts: 2420
Joined: Wed 02 Nov 2011 09:44

Re: Euro (€) characters are inserted into the database as upside down

Post by Pinturiccio » Fri 01 Mar 2019 13:20

Please specify the following:
1. The type of column, to which you insert the Euro character.
2. The NLS_CHARACTERSET and NLS_NCHAR_CHARACTERSET parameters of your Oracle server. You can get this information by executing the following query:
SELECT * FROM NLS_DATABASE_PARAMETERS

ITLV
Posts: 2
Joined: Tue 26 Feb 2019 13:39

Re: Euro (€) characters are inserted into the database as upside down

Post by ITLV » Wed 06 Mar 2019 07:56

Hi,

DATA TYPE of the column: VARCHAR2
NLS_CHARACTERSET: 'WE8ISO8859P1'
NLS_NCHAR_CHARACTERSET: 'AL16UTF1'

Pinturiccio
Devart Team
Posts: 2420
Joined: Wed 02 Nov 2011 09:44

Re: Euro (€) characters are inserted into the database as upside down

Post by Pinturiccio » Thu 07 Mar 2019 15:42

ITLV wrote:DATA TYPE of the column: VARCHAR2
NLS_CHARACTERSET: 'WE8ISO8859P1'
Your database can store string data only in WE8ISO8859P1 character set in VARCHAR2 columns. The Euro (€) character is not present in this charset.

If you want to store unicode characters, you need to use the NVARCHAR2 data type in your Oracle table and use the connection string with the "Unicode=true" parameter.

Post Reply