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 name | Field number | Field value |
---|---|---|
MessageEncoding | 347 | Shift_JIS |
EncodedUserFieldLen | 50354 | 15 |
EncodedUserField | 50355 | こんにちは |
The counterparty must also expect the encoding in these fields.
Dictionary configuration example:
Code Block | ||||
---|---|---|---|---|
| ||||
<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.
...