Differences between Core and .net Framework in client charset (NLS_LANG) and unicode string read/write
Posted: Tue 11 Feb 2020 17:20
Hi,
i would like to understand why two identical applications written one in .net Core and one in .net framework running in the same pc (same client charset NLS_LANG=ITALIAN_ITALY.WE8MSWIN1252), accessing same oracle db (19.3.0.0 same NLS_CHARSET=AL32UTF8 ), in OCI mode (Direct=False) and with Unicode=False in connection string, acts totally differently writing and reading VARCHAR2 and CLOB in UTF8/Unicode chars (es japan arabic etc).
Net Core app luckily always writes non latin strings in VARCHAR and CLOB fields with right encoding. It always connect to the server with AL32UTF8 client encoding even if i set wrong client charset on purpose by registry, environment variable or by OracleGlobalization.SetApplicationInfo.
Net Framework app instead never write VARCHAR2 and CLOB in the right way (with all combination of NLS_LANG Direct or not) except if I set Unicode=True in connection string.
So there is a way to write unicode/utf8 chars without Unicode=True settings in net framework EF app? My goal is to avoid any characterset decoding and translation at server level.
Why net framework version of the driver it's so machine dependent and core the opposite? What i have to expect in net Core migration process of my solution?
I can expect any similar quick and easy AL32UTF8 connection for net framework EF driver?
thanks
i would like to understand why two identical applications written one in .net Core and one in .net framework running in the same pc (same client charset NLS_LANG=ITALIAN_ITALY.WE8MSWIN1252), accessing same oracle db (19.3.0.0 same NLS_CHARSET=AL32UTF8 ), in OCI mode (Direct=False) and with Unicode=False in connection string, acts totally differently writing and reading VARCHAR2 and CLOB in UTF8/Unicode chars (es japan arabic etc).
Net Core app luckily always writes non latin strings in VARCHAR and CLOB fields with right encoding. It always connect to the server with AL32UTF8 client encoding even if i set wrong client charset on purpose by registry, environment variable or by OracleGlobalization.SetApplicationInfo.
Net Framework app instead never write VARCHAR2 and CLOB in the right way (with all combination of NLS_LANG Direct or not) except if I set Unicode=True in connection string.
So there is a way to write unicode/utf8 chars without Unicode=True settings in net framework EF app? My goal is to avoid any characterset decoding and translation at server level.
Why net framework version of the driver it's so machine dependent and core the opposite? What i have to expect in net Core migration process of my solution?
I can expect any similar quick and easy AL32UTF8 connection for net framework EF driver?
thanks