General Administration

Internationalization I18N - Installation Information for ECI Clients

 

Additional Installation Information for ECI Clients

 
  • ECI Client
    ECI clients will get the standard 8-bit data unless they call eci_set_enc UTF-8 for each connection to the server. This ensures that unmodified clients do not get unsupported data from the server.
    Two things happen when calling eci_set_enc UTF-8:
    • The server will switch the data encoding to UTF-8 and will send all characters in this encoding.
    • The server expects that all incoming data is in UTF-8.

    The encoding that is used can be read from the configuration parameter EDB-CHR-ENC-JVM. However, the client may decide to use UTF-8 even if the server is not setup for I18N.
    The server currently supports only two encoding names:

    • The standard 8-bit encoding used by the server.
  • This should match the encoding name as specified in the EDB-CHR-ENC-JVM parameter. However, if an ECI client calls eci_set_enc with an unsupported encoding, an error code is returned and the ECI client can call eci_get_enc to get the name of the encoding used by the server.

    • The standard I18N encoding: UTF-8
      This is always supported, even if the server is not configured for I18N.

Character conversion only takes place if UTF-8 is used. If the client does not use UTF-8, it has to use the encoding returned by eci_get_enc.

  • Java ECI Client
    When using the Java ECI, an ECI client can set the encoding in the parameter object - either EciConParam, or EciClientParam. The ECI connection implementation calls eci_set_enc automatically.
    The encoding can be changed by calling setEncoding at any time (see restrictions above).
    UTF-8 encoding and decoding is performed by the Java ECI.
    When using the JET layer (i.e. the AxalantRepository class), everything is done automatically. The encoding used by the JET layer is read from EDB-CHR-ENC-JVM. When calling AxalantRepository.callEci() for all direct calls to the server, no problems will occur with the encoding.
  • C/C++ ECI Client
    The C ECI does not have parameter objects for the connection, so the client has to call eci_set_enc after opening a connection with eci_connect.
    UTF-8 encoding and decoding must be done by the ECI API user. The ECI API does not do any character conversion at all.
    To support the C developer, the ICU libraries have been added to the third party libraries shipped in $ep_root/ext/bin. The header files are at $ep_root/ext/inc/icu.