При преобразовании строки в кодировке utf-8 из байтов в символы как компьютер узнает, где заканчивается символ?

Дана строка Unicode, закодированная в UTF-8, которая является просто байтами в памяти.

Если компьютер хочет преобразовать эти байты в соответствующие ему кодовые точки Unicode (числа), как он может знать, где заканчивается один символ и начинается другой? Некоторые символы представлены 1 байтом, другие - до 6 байтов. Так что если у вас есть

00111101 10111001

Это может представлять 2 символа или 1. Как компьютер решает, какой он должен интерпретировать это правильно? Есть какое-то соглашение, из которого мы можем узнать из первого байта, сколько байтов использует текущий символ или что-то еще?

Ответы на вопрос(1)

Ваш ответ на вопрос