Does SmartSockets support Unicode characters/strings?

Does SmartSockets support Unicode characters/strings?

book

Article ID: KB0090662

calendar_today

Updated On:

Products Versions
TIBCO SmartSockets -
Not Applicable -

Description

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.

Issue/Introduction

Does SmartSockets support Unicode characters/strings?