Products | Versions |
---|---|
TIBCO SmartSockets | - |
Not Applicable | - |
Resolution:
Yes, but in order to correctly send multi-byte character strings you will need to create your own message type which uses UTF8 field types. This is because C cannot correctly encode a non ASCII character unless you create a message type which has defined fields of UTF8 in the C program itself. Note: UTF8 represents the standard name "UTF-8" - 8-bit Unicode Transformation Format.
#define UTF8_STR_MT 1000
T_IPC_MT UTF8_str_data;
T_IPC_MSG UTF8_str_msg;
UTF8_str_data = TipcMtCreate("UTF8 string data", UTF8_STR_MT, "{utf8 utf8}");
if(NULL == UTF8_str_data) {
(* Error processing *)
}
UTF8_str_msg = TipcMsgCreate(UTF8_str_data);
if(NULL == UTF8_str_msg) {
(* Error processing *)
}
You would then use TipcMsgAppendUtf8 to build the message, and you would read the fields out of the message with TipcMsgNextUtf8.
The fact that Java can use T_MT_STRING_DATA with multibyte characters is a side-effect of the way Java works. Java supports extended character sets. ANSI C only supports extended ASCII.