Skip to main content

Uniface 9: character set[U9.4]

  • November 19, 2018
  • 7 replies
  • 0 views

Jan Cees Boogaard

character set[U9.4]

Author: spanish_uniface@hotmail.es (uniface8)

Hi all, we have a problem with some characters (like Ñ)  in our database (oracle 10g) we have the following configuration:

NLS_CHARACTERSET =AL32UTF8
NLS_LANGUAGE = SPANISH
NLS_LENGTH_SEMANTICS = BYTE

And in our asn files
in windows pc client $DEF_CHARSET=CP1252
in linux server $DEF_CHARSET=UTF8

The connection between clients and server is TCP
E.g:
clear/e"test_table"
field.test_table/init="SB14Ñ0"
retrieve/e"test_table"

The server returns:

Server: I/O function: S, mode: 0, on file/table: TEST_TABLE index: 1 >=
Server:  Where ((FIELD = 'SB14<C3><@1>'))

We know that is a problem with multy-byte / single-byte, we tried to change $DEF_CHARSET and mapping in [META_WESTERN] but not work.
A solution could be change NLS_CHARACTERSET in our database, but someone knows an alternative option?


Kind regards.

7 replies

Jan Cees Boogaard

character set[U9.4]

Author: spanish_uniface@hotmail.es (uniface8)

Hi all, we have a problem with some characters (like Ñ)  in our database (oracle 10g) we have the following configuration:

NLS_CHARACTERSET =AL32UTF8
NLS_LANGUAGE = SPANISH
NLS_LENGTH_SEMANTICS = BYTE

And in our asn files
in windows pc client $DEF_CHARSET=CP1252
in linux server $DEF_CHARSET=UTF8

The connection between clients and server is TCP
E.g:
clear/e"test_table"
field.test_table/init="SB14Ñ0"
retrieve/e"test_table"

The server returns:

Server: I/O function: S, mode: 0, on file/table: TEST_TABLE index: 1 >=
Server:  Where ((FIELD = 'SB14<C3><@1>'))

We know that is a problem with multy-byte / single-byte, we tried to change $DEF_CHARSET and mapping in [META_WESTERN] but not work.
A solution could be change NLS_CHARACTERSET in our database, but someone knows an alternative option?


Kind regards.

Hi all, we found a possible solution, it works changing the NLS_LANG in PC client.
Thank you for your advices.

Kind regards, Rafa.


Author: uniface8 (spanish_uniface@hotmail.es)

Jan Cees Boogaard

character set[U9.4]

Author: spanish_uniface@hotmail.es (uniface8)

Hi all, we have a problem with some characters (like Ñ)  in our database (oracle 10g) we have the following configuration:

NLS_CHARACTERSET =AL32UTF8
NLS_LANGUAGE = SPANISH
NLS_LENGTH_SEMANTICS = BYTE

And in our asn files
in windows pc client $DEF_CHARSET=CP1252
in linux server $DEF_CHARSET=UTF8

The connection between clients and server is TCP
E.g:
clear/e"test_table"
field.test_table/init="SB14Ñ0"
retrieve/e"test_table"

The server returns:

Server: I/O function: S, mode: 0, on file/table: TEST_TABLE index: 1 >=
Server:  Where ((FIELD = 'SB14<C3><@1>'))

We know that is a problem with multy-byte / single-byte, we tried to change $DEF_CHARSET and mapping in [META_WESTERN] but not work.
A solution could be change NLS_CHARACTERSET in our database, but someone knows an alternative option?


Kind regards.

Have you tried to use a Translation Table for READ/WRITE of that particual entity?

Just a guess of a not-so-popular uniface capability


Author: ulrich-merkel (ulrichmerkel@web.de)

Jan Cees Boogaard

character set[U9.4]

Author: spanish_uniface@hotmail.es (uniface8)

Hi all, we have a problem with some characters (like Ñ)  in our database (oracle 10g) we have the following configuration:

NLS_CHARACTERSET =AL32UTF8
NLS_LANGUAGE = SPANISH
NLS_LENGTH_SEMANTICS = BYTE

And in our asn files
in windows pc client $DEF_CHARSET=CP1252
in linux server $DEF_CHARSET=UTF8

The connection between clients and server is TCP
E.g:
clear/e"test_table"
field.test_table/init="SB14Ñ0"
retrieve/e"test_table"

The server returns:

Server: I/O function: S, mode: 0, on file/table: TEST_TABLE index: 1 >=
Server:  Where ((FIELD = 'SB14<C3><@1>'))

We know that is a problem with multy-byte / single-byte, we tried to change $DEF_CHARSET and mapping in [META_WESTERN] but not work.
A solution could be change NLS_CHARACTERSET in our database, but someone knows an alternative option?


Kind regards.

Sorry if i´m wrong but is it not the same as using the mapping in the asn file?

Regards,Rafa.


Author: uniface8 (spanish_uniface@hotmail.es)

Jan Cees Boogaard

character set[U9.4]

Author: spanish_uniface@hotmail.es (uniface8)

Hi all, we have a problem with some characters (like Ñ)  in our database (oracle 10g) we have the following configuration:

NLS_CHARACTERSET =AL32UTF8
NLS_LANGUAGE = SPANISH
NLS_LENGTH_SEMANTICS = BYTE

And in our asn files
in windows pc client $DEF_CHARSET=CP1252
in linux server $DEF_CHARSET=UTF8

The connection between clients and server is TCP
E.g:
clear/e"test_table"
field.test_table/init="SB14Ñ0"
retrieve/e"test_table"

The server returns:

Server: I/O function: S, mode: 0, on file/table: TEST_TABLE index: 1 >=
Server:  Where ((FIELD = 'SB14<C3><@1>'))

We know that is a problem with multy-byte / single-byte, we tried to change $DEF_CHARSET and mapping in [META_WESTERN] but not work.
A solution could be change NLS_CHARACTERSET in our database, but someone knows an alternative option?


Kind regards.

No, it's in the helpfile as "Database Translation Tables"

It uses the mechanism of the KTT or Printer Tables (leftmost column versus middle column) to specify the conversion pairs character by character.

BUT: you have you have to maintain on each compoenent Properties the "Database Translation Table" for Read and Write

 

To use translation tables during DBMS input and output:

  1. Specify the keyboard translation tables that will be used for read and write in your form-level definitions.
  2. Specify that database I/O translation is required. Do this in the field interface definition of individual fields.

If you request translation for a field, Uniface scans the data for the field as it is retrieved. If Uniface encounters a source string from the specified table, it converts the source string to the target string before the data enters the external structure. The opposite operation occurs as the field is stored.


Author: ulrich-merkel (ulrichmerkel@web.de)

Jan Cees Boogaard

character set[U9.4]

Author: spanish_uniface@hotmail.es (uniface8)

Hi all, we have a problem with some characters (like Ñ)  in our database (oracle 10g) we have the following configuration:

NLS_CHARACTERSET =AL32UTF8
NLS_LANGUAGE = SPANISH
NLS_LENGTH_SEMANTICS = BYTE

And in our asn files
in windows pc client $DEF_CHARSET=CP1252
in linux server $DEF_CHARSET=UTF8

The connection between clients and server is TCP
E.g:
clear/e"test_table"
field.test_table/init="SB14Ñ0"
retrieve/e"test_table"

The server returns:

Server: I/O function: S, mode: 0, on file/table: TEST_TABLE index: 1 >=
Server:  Where ((FIELD = 'SB14<C3><@1>'))

We know that is a problem with multy-byte / single-byte, we tried to change $DEF_CHARSET and mapping in [META_WESTERN] but not work.
A solution could be change NLS_CHARACTERSET in our database, but someone knows an alternative option?


Kind regards.

Hi, If possible, I wouldn't touch database translation tables. At least in Uniface7 you had to convert your search-words yourself, ie. the search-data isn't automatically handled by the database translation table. Regards RogerW.


Author: rogerw (roger.wallin@abilita.fi)

Jan Cees Boogaard

character set[U9.4]

Author: spanish_uniface@hotmail.es (uniface8)

Hi all, we have a problem with some characters (like Ñ)  in our database (oracle 10g) we have the following configuration:

NLS_CHARACTERSET =AL32UTF8
NLS_LANGUAGE = SPANISH
NLS_LENGTH_SEMANTICS = BYTE

And in our asn files
in windows pc client $DEF_CHARSET=CP1252
in linux server $DEF_CHARSET=UTF8

The connection between clients and server is TCP
E.g:
clear/e"test_table"
field.test_table/init="SB14Ñ0"
retrieve/e"test_table"

The server returns:

Server: I/O function: S, mode: 0, on file/table: TEST_TABLE index: 1 >=
Server:  Where ((FIELD = 'SB14<C3><@1>'))

We know that is a problem with multy-byte / single-byte, we tried to change $DEF_CHARSET and mapping in [META_WESTERN] but not work.
A solution could be change NLS_CHARACTERSET in our database, but someone knows an alternative option?


Kind regards.

very good point, roger.

In the context I faced this, it was a straight read-write situation.

So as mr. hammer said: don't touch this


Author: ulrich-merkel (ulrichmerkel@web.de)

Jan Cees Boogaard

character set[U9.4]

Author: spanish_uniface@hotmail.es (uniface8)

Hi all, we have a problem with some characters (like Ñ)  in our database (oracle 10g) we have the following configuration:

NLS_CHARACTERSET =AL32UTF8
NLS_LANGUAGE = SPANISH
NLS_LENGTH_SEMANTICS = BYTE

And in our asn files
in windows pc client $DEF_CHARSET=CP1252
in linux server $DEF_CHARSET=UTF8

The connection between clients and server is TCP
E.g:
clear/e"test_table"
field.test_table/init="SB14Ñ0"
retrieve/e"test_table"

The server returns:

Server: I/O function: S, mode: 0, on file/table: TEST_TABLE index: 1 >=
Server:  Where ((FIELD = 'SB14<C3><@1>'))

We know that is a problem with multy-byte / single-byte, we tried to change $DEF_CHARSET and mapping in [META_WESTERN] but not work.
A solution could be change NLS_CHARACTERSET in our database, but someone knows an alternative option?


Kind regards.

What is your NLS_CHARACTERSET in Oracle?


Author: Theo Neeskens (tneeskens@itblockz.nl)