Каждый байт начинается с нескольких битов, указывающих, является ли это однобайтовой кодовой точкой, многобайтовой кодовой точкой или продолжением многобайтовой кодовой точки. Как это:
0xxx xxxx A single-byte US-ASCII code (from the first 127 characters)
Многобайтовые кодовые точки начинаются с нескольких битов, которые по сути говорят: «Эй, тебе также нужно прочитать следующий байт (или два, или три), чтобы выяснить, кто я». Это:
110x xxxx One more byte follows
1110 xxxx Two more bytes follow
1111 0xxx Three more bytes follow
Наконец, все байты, которые следуют за этими стартовыми кодами, выглядят так:
10xx xxxx A continuation of one of the multi-byte characters
Поскольку вы можете определить, какой тип байта вы просматриваете, из первых нескольких битов, то даже если что-то где-то искажается, вы не потеряете всю последовательность.