RMTES strings and unicode

We are trying to contribute fraction symbols to a string - specifically the 1/8 3/8 5/8 7/8 characterds which are at unicode 0x215B-0x215E - is it possible to encode these high unicode characters and have them travel through our ATS.? We can make an insert using RFA, but we also have soem (very) legacy apps sing th eold SFC-COM components.

Tagged:

Best Answer

  • @alister.morton

    Not sure that can you use UTF-8?

    As far as I understand for FID which use RMTES type, you can also encode the text using ASCII or UTF-8 . However there are some
    additional bytes you need to add to the beginning of string. A field must start with the escape sequence <1B>
    <25> <30> if and only if it contains one or more non-ASCII
    characters. The escape sequence must not occur anywhere other than at the start
    of a field.

    You may try encoding the string with UTF and then prepend

    {0x1B, 0x25, 0x30}

    to the UTF8 string and encode that way as an RMTES type.
    That command string indicates to the RMTES parser that it’s supposed to be a
    UTF8 string.

    Please note that you needs to be very careful with using
    that 3 byte string, as it can cause the UTF-8 string to be longer than the
    cached dictionary values (size of RWF LEN column in byte from
    RDMFieldDictionary), which can cause display issues if they’re going through
    the infra.

Answers

  • To add some detail - I can see an example of how to decode an RMTES string field into unicode, but I can't find an example of encoding a field from a unicode string into the data buffer for the post.

  • Thanks, UTF-8 may be a possibility I guess for the old COM based applications. UCS-2 character set contains the characters we're interested in, but again, although I can find example code for decoding to unicode, I'm struglling to find an example of encoding from unicode into RMTES. We could live with having to ditch the COM approach I guess if the RFA route is straightforward.

  • That prefix has worked and pointed us in the right direction. Thanks.