Lably
Skip to content

Comparison of Unicode encodings

  • 9 min read
  • 5 chapters

Related on Lably

Through Unicode, ASCII and Microsoft Windows

Compatibility issues

A UTF-8 file that contains only ASCII characters is identical to an ASCII file. Legacy programs can generally handle UTF-8-encoded files, even if they contain non-ASCII characters. For instance, the C printf function can print a UTF-8 string because it only looks for the ASCII '%' character to define a formatting string. All other bytes are printed unchanged.

UTF-16 and UTF-32 are incompatible with ASCII files, and thus require Unicode-aware programs to display, print, and manipulate them even if the file is known to contain only characters in the ASCII subset. Because they contain many zero bytes, character strings representing such files cannot be manipulated by common null-terminated string handling logic. The prevalence of string handling using this logic means that, even in the context of UTF-16 systems such as Windows and Java, UTF-16 text files are not commonly used. Rather, older 8-bit encodings such as ASCII or ISO-8859-1 are still used, forgoing Unicode support entirely, or UTF-8 is used for Unicode.

XML is conventionally encoded as UTF-8, and all XML processors must at least support UTF-8 and UTF-16.

Sign in to keep reading

4 more chapters are free with a Lably account.

More in Computing and communication