question

Upvotes
Accepted
1 1 1 2

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

elektronrefinitiv-realtimetrep
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Hi @jackychuah,

Could you please confirm which API/product you are using? i.e. RFA, UPA, EMA And, which programming language are you using?

The DSPLY_NMLL field (1352) provides Local language instrument name which is in Chinese. The data type of the this field is RMTES_STRING whose data is encoded with the Reuters Multilingual Text Encoding Standard (RMTES). RMTES uses ISO 2022 escape sequences to select the character sets used.

Please provide the information, so that we can provided decoding method based on the API and language.

Hi @jackychuah

As your query should be related to TREP, Alpha was not the right forum.

I moved it to this TREP APIs group.

Kind regards,
AHS

@jackychuah

Hi,

Thank you for your participation in the forum.

Is the reply below satisfactory in resolving your query?

If so please can you click the 'Accept' text next to the appropriate reply. This will guide all community members who have a similar question.

Thanks

AHS

Upvotes
Accepted
4.4k 10 6 9

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;
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvote
78.6k 248 52 74

@jackychuah

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

After converting to UTF8, it will display:

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.


rmtes.png (1.9 KiB)
conv.png (1.2 KiB)
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.