Al convertir una cadena codificada en utf-8 de bytes a caracteres, ¿cómo sabe la computadora dónde termina un carácter?

Dada una cadena Unicode codificada en UTF-8, que es solo bytes en la memoria.

Si una computadora desea convertir estos bytes a sus correspondientes puntos de código (números) de Unicode, ¿cómo puede saber dónde termina un carácter y comienza otro? Algunos caracteres están representados por 1 byte, otros por hasta 6 bytes. Así que si tienes

00111101 10111001

Esto podría representar 2 caracteres, o 1. ¿Cómo decide la computadora cuál es para interpretarlo correctamente? ¿Hay algún tipo de convención de la que podamos saber desde el primer byte cuántos bytes usa el carácter actual o algo así?

Respuestas a la pregunta(1)

Su respuesta a la pregunta