Displaying Arabic/Hebrew Characters

Hi,

I'm new to oracle. I've developed web applications using oracle as a backend but never for non-english text. Now I have an application that has Arabic/Hebrew (not a mix, but two separate applications.)

In SQL Plus it only displays '????????' and even on the webpage. I'm sure the data is intact because I've seen it display correctly in someone else's computer.

Thanks.
LVL 1
kalmenAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

MetanilCommented:
Change the database NLS parameter .. LIke
NLS_LANGUAGE=Arabic
NLS_CHARACTERSET = <your desire type>

Metanil
MetanilCommented:
nls_characterset for arabic and hebrew are:

IW8MSWIN1255                             MS Windows Code Page 1255 8-bit Latin/Hebrew

AR8MSWIN1256                             MS Windows Code Page 1256 8-Bit Latin/Arabic
MetanilCommented:
Your Guide to Achieving IT Business Success

The IT Service Excellence Tool Kit has best practices to keep your clients happy and business booming. Inside, you’ll find everything you need to increase client satisfaction and retention, become more competitive, and increase your overall success.

MetanilCommented:
Sorry,

AR8ISO8859P6                            ISO 8859-6 Latin/Arabic SB, ASCII

IW8ISO8859P8                            ISO 8859-8 Latin/Hebrew
kalmenAuthor Commented:
Hi All,

I tried for Arabic the following: AMERICAN_AMERICA.AR8MSWIN1256
which displays both arabic and english, which works on my windows xp machine but not on my windows 2000 server. Any thoughts?
MetanilCommented:
change the NLS parameter in your registry of your windows 2000

Metanil
kalmenAuthor Commented:
I did. I put it everywere that had NLS_LANG but it still didn't work. Am I missing anything?
MetanilCommented:
is Windows 2000 is your database server or client??
kalmenAuthor Commented:
Its my client. My database is on a Unix Box.
MetanilCommented:
if u are using SQL plus then you can explicitly change the language by issuing
SQL>ALTER SESSION SET NLS_LANG='<...>'

or

you can change the language in the database server in that particuar database instance to make global change.

Metanil
kalmenAuthor Commented:
I'm sorry, I couldn't do either, I don't have privellage. Its working fine for me on WinXP and everyone else. We defined the nls_lang in the registry for it to work, but on the win2k box I'm working on, nothing seems to work, it just gives me nonsense. See:

SQL> select name_a from business_card where rownum < 5;

NAME_A
--------------------------------------------------------------------------------
æÇÆÜÜá ãÚíÜä ÕÇáÜÜÜÍ
ÍÓíä ÇáåäÏÇæí
Úáí ÕÏíÞ ÎæÇÌå
áíä ÅíäæÓ ãÝæÑæ
MetanilCommented:
try setting the enviroment variables NLS_LANG.
either set NLS_LANG='AMERICAN_AMERICA.AR8MSWIN1256'

or

Configuring in SQL*Plus on Windows

1. Ensure you have exited your current SQL*Plus session.
2. Open System from Start > Settings > Control Panel.
3. Click the Advanced tab and select Environment Variables.
4. Create a new environment variable, NLS_LANG, with a value of <desire language>.
5. You may need to restart Windows for this setting to take effect.

LESSIONS
1.  The Oracle character set is synonymous with the Windows code page. Basically, they mean the same thing.

2.  For all intents and purposes, in most Windows' environments, the Windows command line mode has a different code page (uses a different character set) than the Windows GUI. This in particular was a huge thing for me to get use to as I have always used the DOS command mode SQL*Plus (sqlplus). When I switched to the Windows GUI SQL*Plus version (sqlplusw) all my problems went away. This is extremely important if you wish to run some scripts through sqlplus. Don't get into the trap of editing SQL commands through a GUI editor such as notepad and expect them to be recognized at the DOS command mode. You can easily verify this yourself by opening up notepad, typing in an international character such as 'Ä', saving the file, and then using the DOS command 'TYPE' to display the contents of the file. You will get something totally different. You can get around this by using the DOS command EDIT for your files but I don't know anyone who would want to. I would suggest to everyone to start using the Windows version of SQL*Plus. I have also been told that the web based iSQL*Plus is even better for globalization and representing international characters.

3.  The NLS_LANG setting must reflect the character set (code page) that you are using on your client. You cannot switch to a different language, such as German, just by setting the NLS_LANG to GERMAN_GERMANY.

4.  A client machine's locale is determined by the Regional options. My locale was set for English. So if you want to change to a different language you need to switch your locale at the operating system level to that region.

5.  You can change your client locale very easily by going into the Regional options and changing to a different locale. Start -> Settings -> Control Panel -> Regional Options

6.  NLS_LANG does not reflect the character set of the target database server or instance. Setting your NLS_LANG to the target database character set is a decision that will cause you issues down the road.

7.  The NLS_LANG must reflect the character set (code page) that you are using on your client and is solely responsible for assisting Oracle in the conversion of characters from your client character set to the database server character set.

8.  The LANGUAGE and TERRITORY parts of the NLS_LANG parameter do nothing for defining the character set. They are solely used for the presentation formats of such items as messages, dates, times, currencies, and numbers.

9.  Read the manuals on this one. I have often been able to hack through setting Oracle parameters and quickly determining what is happening. Character sets, code pages, and getting a true understanding of the history and current implications is not trivial at times. You will no doubt need to visit not only Microsoft's web site for code page information but also try out www.unicode.org to assist you in your understanding.

Note: Source -> http://www.databasejournal.com/features/oracle/article.php/3493691


Meanwhile u can ask ur system admin to give u the permission to alter the session.

Metanil

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
oleggoldCommented:
from an expirience for hebrew charset on client NLS_LANGUAGE=HEBREW_ISRAEL.IW8ISO8859P8 IN HKLM\SOFTWARE\ORACLE\HOME# allways works,You need to change it in any home You're using the app.(e.g. SQLPLUS).
oleggoldCommented:
FOR WEB DISPLAY THE SERVER MUST BE CONFIGURED RIGTH,CHECK XML CONFIG FILES IF WORKING WITH DISCOVERER.
HOPE IT HELPS.
kalmenAuthor Commented:
Dear All,

It turns out that I have a problem with the software and need to reinstall with newer release. Thanks for your help all.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Oracle Database

From novice to tech pro — start learning today.