Versions Compared

Key

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

Table of Contents

Overview

FIX Antenna products fully support UTF-8 encoding.

UTF-8 supports all the CJK (Chinese-JapaniseJapanese-Korean) symbols but has no other meanings for 0x01 instead of SOH.

FIX-Protocol and non-ASCII characters

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

...

Info
In case if UTF-16 or Unicode is used, the described approach leads to protocol violation because the 0x01 symbol in 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.
The list of encoded tags

Example

The example shows how to work with tags: EncodedText (355) and EncodedTextLen (354) encoded by  MessageEncoding (347)

...

Info
Doesn't work in FIX Client Simulator


Work with User-defined Encoded Fields

To create a new user-defined field using encoded symbols one should create an extra field for the length of the encoded text in bytes. 

Example

Field nameField numberField value
MessageEncoding347Shift_JIS
EncodedUserFieldLen5035415
EncodedUserField50355こんにちは

The counterparty must also expect the encoding in these fields.

Dictionary configuration example:

Code Block
languagexml
titleadditional.xml
        <fielddic>
            <!-- ... -->
			<fielddef tag="50354"  name="EncodedUserFieldLen" type="int"/>
			<fielddef tag="50355"  name="EncodedUserField" type="String"/>
            <!-- ... -->
        </fielddic> 


		<msgdic>
            <!-- ... -->
            <msgdef msgtype="B" name="NEWS">
               <!-- ... -->
               <field tag="50354"  name="EncodedUserFieldLen" condreq="existtags(T$50355)"/>
               <field tag="50355"  name="EncodedUserField" condreq="existtags(T$50354)"/>
            </msgdef>
            <!-- ... -->
        </msgdic>

Message example: encoding-testing-custom.txt

FIX Protocol and UTF-16 Encoding

In UTF-16 or Unicode encodings, 0x01 is a page code and can be contained in the field content it makes UTF-16 incompatible with FIX-Protocol.

...