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
Field 1352 or “DSPLY_NMLL” use RMTES (Reuters Multilingual TextEncoding Standard) string and it can be displayed by converting to UTF-8.
For SFC C++ API, you can use RTRUTF8String class which provide aconvenient and efficient way for applications to represent RMTES characters inUTF-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 thesetRMTESConversion(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;
@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.