Friday, September 14, 2012

Persian, Arabic and other languages not working in Oracle Forms 6i in Windows 7 64bit

Problem:
Recently we encountered a problem while transitioning some of our clients to Windows 7. There are some line of business applications that run on Oracle Forms 6i and clients need to enter persian, arabic, hebrew and other languages. When Oracle forms are installed, the language setting is set as following in the registry:

For 32bit machines - 

Key: HKEY_LOCAL_MACHINE\SOFTWARE\Oracle
Value Name: NLS_LANG
Value: AMERICAN_AMERICA.WE8ISO8859P1

For 64bit machines - 

Key: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Oracle
Value Name: NLS_LANG
Value: AMERICAN_AMERICA.WE8ISO8859P1

this by default does not support UTF8 encoding.

Solution:
To get the languages working, change the value of NLS_LANG to

AMERICAN_AMERICA.UTF8
 
beware, this may break other forms that are not designed well and cannot take UTF8 so test before implementing it to all