|
- 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.
|