Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The support of non-ASCII characters was introduced in FIX-protocol since FIX 4.2 (Link???? https://www.fixtrading.org/standards/fix-4-2/).

Usage The usage of the multibyte encodings is covered by FIX protocol since FIX 4.2 with the followed algorithm:

  1. If the field has no Encoded analog, there is no possibility to use Non-ASCII symbols in this field and still remain compliant with FIX spec.
  2. If the field has Encoded analog, the Special Encoded fields are added for work with Non-ASCII symbols. 
  3. The field MessageEncoding(347) should be presented and contain specified with the encoding name which are used in the other  Encoded* fields of the message.
  4. The

...

  1. length fields (Encoded*Len) should contain the count of BYTES (Important: not count of symbols) contained in

...

  1. corresponding Encoded* field.


However, nothing prevents to one can use UTF-8 in any text field. It is not a FIX-compliant way, but the only requirement for such a trick is that the counterparty should In order to keep FIX-protocol compatibility the counterparty must also expect UTF-8 in such field, protocol requirements will not be violated in this caseencoding in the fields.

Info
Regarding In case if UTF-16 or Unicode : such trick will lead is used, the described approach leads to protocol violations violation because the 0x01 symbol can be contained in the text body in these encodings these encodings would be used inappropriately.

Work with Encoded fields

...

FIX Antenna and FIXEdge support and correctly processes Encoded fields

...

and

...

UTF-8 in non-encoded fields.

For

...

FIX Antenna, it is user responsibility to convert ASCII string with UTF-8 content to the UTF-8 string and vice-versa.

...

вставить ссылки на FIXopediaThe list of encoded tags

Links

For custom tags,

if the text tag has related pair tag with text length specified, the one can use UTF-8, Unicode or UTF-16 there, if the length should be specified in bytes. In case of the length should be specified in symbols, only UTF-8 can be used. In any scenario, counterparty should expect such encoding in such field.

FIX Protocol and UTF-16 Encoding

...