Here p_mark contains some text as either UTF-16 encoded, or native encoded - as determined by the check against the boolean fields below. However, the rest of this method needs the text in UTF-16 which is why there is conversion logic. Until we update the callers, I suggest doing this:
```
bool t_is_unicode;
t_is_unicode = p_mark -> text . font -> unicode || p_mark -> text . unicode_override;

MCAutoStringRef t_text_str;
/* UNCHECKED */ MCStringCreateWithBytes(p_mark -> text . data, p_mark -> text . length, t_is_unicode ? kMCStringEncodingUTF16 : kMCStringEncodingNative, false, &t_text_str);
```
This gives us an MCStringRef to play with. Then we can use the convert method to definitively get a UTF16 string:
```
MCAutoPointer<unichar_t> t_chars;
uindex_t t_char_count;
/* UNCHECKED */ MCStringConvertToUnicode(*t_text_str, &t_chars, t_char_count);
```