Encoding in Trace Files - trillium_quality - 17.2

Trillium Director User Guide

Product type
Product family
Trillium > Trillium Quality
Product name
Trillium Quality
Trillium Director User Guide
Topic type
How Do I
First publish date

The encoding scheme used in your data is reflected in trace files. (The examples in the following sections correlate to the sample trace file provided beginning in the Sample Trace File.)

When an array of strings is printed out, each string is displayed in two rows. The first row shows the row number of the string, the length in terms of bytes and the string value in hexadecimal. The second row shows the string value in character format. The encoding of the displayed string is determined in the following way:

  1. Check if the string value of the argument following the current argument is UTF8. For example:

    If it is, it means the string values of the current argument are encoded in UTF8. Each UTF8 character is then printed under the corresponding hex values. For example:


    In this case, each character consists of three bytes (e590b4, e58d97, e9b9b0). The (94) after the 20 indicates that there are 94 trailing spaces. If the characters do not line up with the corresponding hex values, you may have to adjust the font in your editor or viewer.

  2. If there are no arguments with a string value of UTF8, then the first byte of the string value is checked to see if its value is less than 128 (0x80). If it is, then it is assumed to be a one byte ASCII character. The following example shows the string values displayed in ASCII:

  3. At this point, we are not sure what the encoding is, so the values are printed out as a string instead of one character at a time to line up with the corresponding hex value. Here is an example:

In this case, the encoding is UTF8, so the characters are readable except that each character is not lined up with the corresponding hex value. If the encoding is not UTF8, the characters will probably not be readable. If the length of a row is 0, then that row will not be printed. In the following example, rows 85 to 98 are not printed because their lengths are 0.