Incorrect Chinese/Japanese/Korean characters appear in NuGenesis SDMS or Empower when both clients are installed on one machine - WKB47796
SYMPTOMS
- Depending on the configuration of the NLS_LANG parameter, one or more of the following symptoms are present:
- Incorrect CJK characters displayed in the Empower client
- Incorrect CJK characters displayed in SDMS Administrator
- SDMS cannot archive files with CJK characters in the file names
ENVIRONMENT
- NuGenesis 9 SDMS
- NuGenesis 8 SDMS
- Empower 3
- The Empower and SDMS Administrator clients are installed on one machine
- The Windows system locale is set appropriately for Chinese, Japanese, or Korean text
- The NLS_LANG parameter is set either as a system variable or via a registry key for the Oracle Client home in Empower
CAUSE
SDMS and Empower interpret characters from the database with different and incompatible character sets. There is no NLS_LANG setting that is suitable for both clients in a CJK environment.
FIX or WORKAROUND
For CJK installations, install the SDMS and Empower client software on separate machines.
ADDITIONAL INFORMATION
For English-language installations of SDMS and Empower client software, the recommendation is to use the Oracle client in Empower for both applications; however, this is not suitable for CJK environments.
For all languages, Empower sets the NLS_LANG in the registry key for its Oracle client to "AMERICAN_AMERICA.WE8ISO8859P1". This key sets the character set to ISO8859-01 for all database connections that use the Oracle client in Empower. A signal to the Oracle database says that the client is using the ISO8859-01 character set and that the database should convert the retrieved text data from the the database's character set (AL32UTF8 by default for NuGenesis, WE8ISO8859P1 by default for Empower) into ISO8859-01.
NuGenesis SDMS, meanwhile, interprets the retrieved text according to the client OS's locale. For example, for clients that use Simplified Chinese, the correct NLS_LANG parameter to use is SIMPLIFIED CHINESE_CHINA.ZHS16GBK. SDMS sets the NLS_LANG environment variable accordingly upon installation, and this variable overrides the registry key setting. The result is invalid characters displayed in Empower.
Oracle's FAQ on the NLS_LANG parameter: NLS_LANG FAQ (oracle.com)
