HK stock name in Chinese page are not shown properly

Hi Support

our trading plarform HK stock name in Chinese page are not shown properly. I have reported to Thomsan Reuters Customer support and they cant help us and direct us to this developer portal to log this case. We need help from your urgently

Best Answer

  • Field 1352 or “DSPLY_NMLL” use RMTES (Reuters Multilingual Text
    Encoding Standard) string and it can be displayed by converting to UTF-8.

    For SFC C++ API, you can use RTRUTF8String class which provide a
    convenient and efficient way for applications to represent RMTES characters in
    UTF-8 format.

    Here is an example.

    void RecordSnapshotClient::processSnapshotSync(RTRSnapshotRecord& record)
    {
    // Access each field from the record using an iterator
    RTRSnapshotRecordIterator iterator = record.iterator();
    for (iterator.start(); !iterator.off(); iterator.forth())
    {
    // Print the name and value of each field
    RTRSnapshotField& field = iterator.field();
    // If field id = 1352 then use RTRUTF8String
    if (field.fid() == 1352)
    {
    RTRUTF8String utf8(field.to_c(), field.count(), RTRUTF8String::RMTES);
    if (!utf8.error())
    {
    printf("%s %s\n", (const char *)field.name(), utf8.to_c());
    }
    }
    else
    {
    printf("%s %s\n", (const char *)field.name(), (const char *)field.string());
    }
    }

    For SFC Java API, you have to enable RMTES conversion by setting the
    setRMTESConversion(boolean conversion) of RTRecord or RTField to true.

    For EMA C++ API, you can use RmtesBuffer class.

    const FieldEntry& fe = fieldList.getEntry();
    rmtesBuffer.apply( fe.getRmtes() );
    cout << rmtesBuffer.toString() << endl;

Answers

  • @jackychuah

    It could be RMTES_STRING. For example, for 2018.HK, the DSPLY_NMLL in RMTES_STRING will look like:

    image

    After converting to UTF8, it will display:

    image

    Typically, there is an example code in the API developer guide which shows how to convert RMTES to UTF8 or UCS2. The following code is for RFA C++.

    RMTESConverter converter; 
    PartialUpdateReadIterator partialReadIt;

    if ( dataBuffer.isPartialUpdates() )
    {
    partialReadIt.start( dataBuffer.getBuffer() );

    while ( !partialReadIt.off() )
    {
    fieldUpdatedBuf = partialReadIt.value();
    offset = partialReadIt.offset();
    converter.setBuffer( fieldUpdatedBuf, offset );
    partialReadIt.forth();
    }
    // For update msg display
    vector = converter.getAsShortString()
    }
    else
    {
    converter.setBuffer( dataBuffer.getBuffer() );
    // For refresh msg display
    vector = converter.getAsShortString();
    }

    In RFA C++, RMTESConverter is an interface to be used to convert RMTES encoded string into a string of Unicode format.

    RMTESConverter::getAsCharString() returns the converted string in UTF8 format and RMTESConverter::getAsShortString() returns the converted string in UCS2 format.