Компьютерная интернациональность
Однако не все оказалось так хорошо и просто. Единая четырехбайтовая кодировка удобна далеко не всегда. Так, например, большинство распространенных языков имеют сравнительно небольшие алфавиты, и выделять по четыре байтадля каждого символа — достаточно расточительно. Кроме того, в общем наборе целых чисел, двоичное представление которых состоит из четырех байт, имеется немало таких, в которых тот или иной байт целиком равен нулю, например,
хххххххх хххххххх хххххххх 00000000
хххххххх хххххххх 00000000 хххххххх
хххххххх 00000000 хххххххх хххххххх
00000000 хххххххх хххххххх хххххххх
где х обозначает любую двоичную цифру: 0 или 1.
Нулевой байт — это признак окончания текстовых строк в языке программирования «С» и соответственно во всех программах, библиотеках и системах, построенных на базе этого языка. Например, операционная система UNIX очень широко использует систему правил и соглашений языка «С». Поэтому появление нулевого байта в общем потоке кодов текстового файла прервет всю дальнейшую его обработку.
Кроме этого имеется немало чисел, в которых значение того или иного байта совпадает с кодом символа «/» в ASCII-таблице.
хххххххх хххххххх хххххххх 00101111
хххххххх хххххххх 00101111 хххххххх
хххххххх 00101111 хххххххх хххххххх
00101111 хххххххх хххххххх хххххххх
Во многих компьютерных системах символ «/» имеет специальное значение в именах файлов — это разделитель имен полного пути к файлу. Поэтому коды символов, содержащих такие сочетания, также создают определенные сложности при их использовании в именах файлов.
Ситуация усложняется еще и тем, что большинство UNIX-систем вообще не рассчитаны на обработку символов как двух- или четырехбайтовых слов, а работают только с отдельными байтами.
Поэтому, помимо наведения порядка в системе учета и нумерации всех символов, было решено ввести три формы кодировки этих номеров. Все три формы эквиваленты с точки зрения однозначности интерпретации информации и служат для повышения эффективности работы в различных окружениях.