English

Bug: ArcCatalog Identify does not display multibyte characters properly using the WMS connector

Description

The Identify function in ArcCatalog does not display multibyte characters properly when connecting to ArcIMS Server through the WMS connector.

Cause

This is a known issue. The charset value must be set for multibyte character display.

Workaround

There are two files that require charset definition. They are WMSEsrimap_prop and wms_featureinfo_html.xsl.

  • For Windows:
    1. Open the WMSEsrimap_prop file at: $AIMSHOME\Connectors\wms_connector\wmsconnector\WEB-INF\classes.

    2. At the bottom of this file, there is 'charset' specification. For Traditional Chinese, specify CP950 as an example.

    ### ESRI ArcIMS v.9.2.0
    ### Properties for the ArcIMS WMS Connector

    ### Set this property to "True" to enable the WMX Connector.
    ### ConnnectorPing is the only request that will be allowed when
    ### disabled.
    enable=false

    ### The name of the machine on which the ArcIMS Application Server is running.
    appServerMachine=katabami

    ### The port on which the connector communicates with the Application Server.
    appServerClientPort=5300

    ### The capabilities directory is where you place your capabilities files. A
    ### capability file specifies the contents of the map server capabilities data,
    ### returned by the getCapabilities operation or request. A capabilities file
    ### gets created for each ArcIMS Service.
    ### Windows Example:
    ### capabilitiesDir=C:\ArcIMS\capabilities
    ### UNIX Example:
    ### capabilitiesDir=/disk1/ArcIMS/capabilities
    capabilitiesDir=

    ### Set this to "True" if you want additional debug information
    debug=false

    ### Set this to "file" or "servlet" if you want debug information to be logged to
    ### the WMSEsrimap.log file or servlet context. The default is servlet. If debug is
    ### false there will not be any logging.
    errorLog=

    ### Set this to "True" or "False" for reaspecting of the image
    reaspect=true

    ### Set this to "png8" or "png24" for creating a 8 bit or 24 bit png image
    pngformat=png8

    ### The default ArcIMS Service that you want the WMS Connector to recognize.
    defaultService=

    ###The stylesheets used for transformation of capabilities and featureinfo
    wms_capabilities_100=wms_capabilities_100.xsl
    wms_capabilities_110=wms_capabilities_110.xsl
    wms_capabilities_111=wms_capabilities_111.xsl
    wms_featureinfo=wms_featureinfo.xsl

    ###Username & Password for WMS adminstarator
    adminPassword=
    adminUser=

    ###The charset variable is for i18n support
    <b>charset=CP950</b>



    3. Open wms_featureinfo_html.xsl at: $AIMSHOME\Connectors\wms_connector\wmsconnector\WEB-INF\classes\wms\stylesheets.

    4. Search for 'encoding' and set the value to CP950 for Traditional Chinese as an example.

    <?xml version="1.0" encoding="UTF-8" ?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" version="1.0" <b>encoding="CP950"</b> indent="yes" />
    <xsl:template match="/">
    <table border="1">
    <xsl:for-each select="/FeatureInfoResponse/FIELDS">
    <tr>
    <xsl:for-each select="@*">
    <th bgcolor="#006699">
    <font color="#FFFFFF">
    <xsl:value-of select="name()" />
    </font>
    </th>
    </xsl:for-each>
    </tr>
    <tr>
    <xsl:for-each select="@*">
    <td bgcolor="#99CCFF">
    <xsl:value-of select="." />
    </td>
    </xsl:for-each>
    </tr>
    </xsl:for-each>
    </table>
    </xsl:template>
    </xsl:stylesheet>



    5. Redeploy the WMS connector.
  • For Unix:
    1. Open the WMSEsrimap_prop file at: $AIMSHOME/Middleware/wms_connector/wmsconnecotor/WEB-INF/classes.

    2. Search for 'charset' and set the value to CP950 for Traditional Chinese as an example.

    ###ESRI ArcIMS WMS Connector 9.2.0
    #Fri Feb 02 15:34:03 PST 2007
    appServerClientPort=5300
    debug=true
    adminPassword=Gzt3XR0PAto\=
    wms_capabilities_100=wms_capabilities_100.xsl
    pngformat=png8
    <b>charset=CP950</b>
    reaspect=true
    appServerMachine=karatachi
    enable=true
    adminUser=admin
    errorLog=file
    capabilitiesDir=/karatachi1/users/ims92/capabilities
    wms_capabilities_111=wms_capabilities_111.xsl
    wms_capabilities_110=wms_capabilities_110.xsl
    wms_featureinfo=wms_featureinfo.xsl
    defaultService=TChinese



    3. Open wms_featureinfo_html.xsl at: $AIMSHOME/Middleware/wms_connector/wmsconnector/WEB-INF/classes/wms/stylesheets.

    4. Search for 'encoding' and set it to CP950 for Traditional Chinese as an example.

    <?xml version="1.0" encoding="UTF-8" ?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" version="1.0" <b>encoding="CP950"</b> indent="yes" />
    <xsl:template match="/">
    <table border="1">
    <xsl:for-each select="/FeatureInfoResponse/FIELDS">
    <tr>
    <xsl:for-each select="@*">
    <th bgcolor="#006699">
    <font color="#FFFFFF">
    <xsl:value-of select="name()" />
    </font>
    </th>
    </xsl:for-each>
    </tr>
    <tr>
    <xsl:for-each select="@*">
    <td bgcolor="#99CCFF">
    <xsl:value-of select="." />
    </td>
    </xsl:for-each>
    </tr>
    </xsl:for-each>
    </table>
    </xsl:template>
    </xsl:stylesheet>



    5. Redeploy the WMS connector.

Related Information