1753792 Members
7380 Online
108799 Solutions
New Discussion

NLS settings

 
Amit Kureel
Advisor

NLS settings

Hello friends,
I have a Oracle Database set-up on HP-UX 11.01 m/c with the following NLS parameters,
nls_language = american
nls_territory = america
NLS_CHARACTERSET = UTF8

Now I have inserted some Arabic characters into one of the tables through my VB application running on Arabic-enabled Windows 2000 server. When I query through my application I can see proper arabic characters on my Windows 2000 server PC. But when I start a telnet client on my Windows 2000 server PC and connect to Database through SQL*PLUS from my telnet-client, I see only ???? ( question marks) on the screen. Can anybody tell me any specific settings required to be done for the tty of my telnet session to view proper arabic characters.

I even tried settings like LC_ALL=C.utf8
stty cs8 -istrip
but this didn't work :-(

Thanks in advance
Amit Kureel
1 REPLY 1
Kenneth Platz
Esteemed Contributor

Re: NLS settings

Amit,

I don't have any definite answers for you, but I can offer several suggestions which might help explain the situation.

It would appear that you have configured your database to encode characters internally in the UTF-8 (or Unicode) character set, which allows Arabic, English, and most other characters to coexist within the same environment. Your Windows 2000 application is then able to view the Arabic characters, because Windows 2000 uses an implementation of Unicode for its native format, so your Oracle database is able to convert the UTF-8 characters to the Windows 2000 native format and back without any loss in consistency.

However, the problem arises when you are attempting to display in a terminal (ie, telnet) application, and the problem is twofold:

1) Your telnet application needs to understand the Arabic character set. I do not know if there are any telnet applications which support this.

2) If your telnet application does support the Arabic character set (ie, iso8859-6), you *might* be able to set your LANG variable to ar_SA.iso88596, and hopefully the SQL*Forms program will convert the UTF-8 characters to the appropriate character set (ISO8859-6) and display them correctly to your screen.

I know this isn't a definite answer, but I hope this is at least a place to start.
I think, therefore I am... I think!