It depends a lot on what you consider a “letter”.
UTF8 is basically a tiny snippet of what is Unicode.
Basically, there are at least three levels: bytes, code points, and Grapheme clusters. A code point may be encoded in one or more bytes in accordance with a particular encoding, for example, UTF8, UTF16, or UTF32. This encoding is unique (as all alternative methods are declared invalid). However, a code point is not always a glyph, because there are so-called character combinations. Such combining characters follow the base character and, as their name says, are combined with the base character. For example, there is a combined character U + 0308 COMBINING DIAERESIS, which puts a diaresis (¨) above the previous letter. Therefore, if this follows, for example, a (U + 0061 LATIN SMALL LETTER A), the result is a. However, there is one code point for the letter ä (U + 00E4 LATIN SMALL LETTER A WITH DIAERESIS), so this means that the code sequences U + 0061 U + 0308 and U + 00E4 describe the same letter.
Thus, each code point has the only valid UTF 8 encoding (for example, U + 0061 - "\ 141", U + 0308 - "\ 314 \ 210", and U + 00e4 - "\ 303 \ 244", but the letter ä encoded as a sequence of codes U + 0061 U + 0308, that is, in UTF8, a sequence of bytes "\ 141 \ 314 \ 210" and a single code point U + 00E4, that is, a sequence of bytes "\ 303 \ 244" ,.
To make matters worse, since Unicode manufacturers decided that the combined letters follow the base letter instead of the previous one, you cannot know if your glyph is complete until you see the next code point (if it is not a combining code point, your letter is complete).