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.

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.1k 246 52 72

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