Summary
** Internal Publish Only! This article may contain information that is not intended for external circulation. **
This document provides specific instructions on how to configure ArcIMS on Solaris with a Korean locale and assumes prior experience with Solaris locale configuration. For an introduction and discussion on locales, see document 20982. The content of this document can be used as a model for solving other locale-specific issues with ArcIMS. Problems exhibited by ArcIMS applications pertaining to an incorrect locale or system setting include:-> GET_FEATURES requests do not return valid character data. Often the Korean characters are represented by spaces, question marks and/or square character glyphs. These requests are often initiated by tools in a client application, such as Identify.-> Labeling features using a field containing Korean characters returns invalid or nonsensical character data; represented by spaces, question marks and/or square character glyphs. These problems my be encountered in both ArcIMS browser-based clients and standalone applications (Author, ArcExplorer Java).
Procedure
Configuring ArcIMS on Solaris with a Korean locale involves four inter-connected steps and issues:
1) Locale settings
2) Font availability
3) Data sources
4) Client applications
Not every Korean locale is supported by ArcIMS on Solaris. Currently, Extended UNIX Code (EUC) based locales are supported by ArcIMS for Asian-based systems. The Korean locale supported by ArcIMS is:
ko_KR.EUC
- Use document 20982 to set the locale properly. Note that this locale must be used on the ArcIMS spatial server and any machine on which the standalone applications access Korean data directly (not through ArcIMS).
- In order for ArcIMS and associated applications to render Korean data properly, Korean fonts must be available to provide Korean character glyphs. ArcIMS uses TrueType fonts (also known as Physical fonts). The following fonts work with ArcIMS applications and the ko_KR.EUC locale, and one of which must be available:
Dotum (dotum.ttf)
Gulim (gulim.ttf)
Human MyongJo (hmkmm.ttf)
Often, they can be retrieved from another system (i.e. a Windows machine) or a remote site (i.e. Web site). They must be placed in the following, Solaris-specific directory:
/usr/openwin/lib/X11/fonts/TrueType
Note that document 17144 discusses directory locations in greater detail.
These fonts must be installed on the same physical machine where the application that will render the Korean data resides. For example, a supported Korean TrueType font must be on the same machine that the ArcIMS spatial server or ArcExplorer Java is installed.
- The type of data being accessed may also dictate additional settings needed to render Korean data correctly.
Shapefiles store their attribute information in DBF files. At this time, DBF files are not UTF-8 compliant and each file retains an encoding value, usually associated with the locale in which the shapefile was created. In order for data created in one codeset to be recognized in another codeset, the application using the data must be able to convert between codesets. For the ArcIMS spatial server (a C++ application) the conversion process is handled by an ICU (International Components for Unicode) library named libicudata.so and located in $AIMSHOME\lib. This library is packaged with the ArcIMS product and cannot be changed, unless a new version is included with a QFE. The codeset conversion in ArcIMS standalone applications is handled by the Java Runtime Environment. Additional information on this utility can be found at the following location: http://www-124.ibm.com/icu/.
ArcSDE layers store their attribute information in a relational database. Each relational database has locale-specific restrictions. In addition, ArcSDE does not support UTF-8 encoded data. As a result, the locale used by the relational database must be compatible with ArcIMS.
Oracle databases maintain locale specific parameters through the National Language Support (NLS) architecture. This architecture provides database-specific parameters to account for different locales. The following NLS parameters must be set for ArcSDE data stored in a Korean locale:
NLS_LANGUAGE = KOREAN
NLS_TERRITORY = KOREA
NLS_NCHAR_CHARACTERSET = KO16KSC5601
These values can be checked by querying the NLS_DATABASE_PARAMETERS view in the corresponding Oracle database. The following site may provide additional information on locales available to Oracle databases: http://otn.oracle.com/docs/products/oracle8i/doc_library/817_doc/server.817/a76966/ch1.htm.
Once the Oracle database locale has been set correctly, ArcSDE server clients (ArcIMS Spatial Server, Author, ArcExplorer) must account for this setting. The machine on which the ArcIMS Spatial Server operates must define the following environment variable:
NLS_LANG=KOREAN_KOREA.KO16KSC5601
Note that the value of this variable is the same as the Oracle locale (<language_territory.codeset>). For standalone Java applications, the variable must be defined on the command line as:
-DNLS=KOREAN_KOREA.KO16KSC5601
In other words, the Author script (aimsauthor) and ArcExplorer Java script (aejava) should be edited to include this variable when executing the application.
- ArcIMS clients include both browser-based (HTML and Java Viewer) as well as standalone (Author, ArcExplorer Java) applications. The primary issue associated with ArcIMS clients' ability to display and utilize Korean data, is the location of the application responsible for reading and interpreting the data. For example, when labeling a shapefile in ArcExplorer Java, the application itself is responsible for reading and interpreting Korean attribute information. However, if AEJava adds an ArcIMS image service (referencing the same shapefile) to its map display, the ArcIMS spatial server is responsible for labeling the shapefile and creating the map image. AEJava is merely responsible for displaying the image. While requirements for the ArcIMS spatial server and standalone applications have been discussed in prior steps, additional parameters must be utilized in browser-based clients. In order for HTML clients to interact with and display Korean characters in an HTML document, the client machine must have Korean fonts loaded and the HTML document must specify the appropriate character set. The character set can be defined by the site developer by setting the 'charset' parameter in the '<META>' element near the top of each HTML document. The valid 'charset' value for Korean data is:
ksc5601
The following site lists additional 'charset' values for selected locales and browsers: http://www.w3.org/International/O-charset-list.html
The same issues exist for the ArcIMS Java Viewer's HTML documents. However, the Java Viewer applets themselves are dependent on the client's Java Runtime Environment for localization issues. While ArcIMS image services are rendered on the ArcIMS server, feature services and accessing data directly may require the presence of specific Korean fonts or variable settings. Use the appropriate fonts listed in step 2 when required. If ArcSDE data is being used, specify the DNLS parameter in the Java Plug-in on the client machine.