UTF-8 требует, чтобы кратчайшая возможная последовательность использовалась для кодовой точки.
Все, что начинается с 0xc0, представляет кодовую точку, которая находится в диапазоне 00000 000000–00000 ffffff, который составляет 0–63 десятичного числа, что означает, что это может быть выражено как один байт. Другими словами, любая кодировка 11000000 10yyyyyy должным образом кодируется как просто 00yyyyyy.
То же самое относится к 0xe0 0x80 0x80.
Из спецификации UTF-8 :
Реализации вышеописанного алгоритма декодирования ДОЛЖНЫ защищать от декодирования недопустимых последовательностей. Например, наивная реализация может декодировать сверхдлинную последовательность C0 80 UTF-8 в символ U + 0000 или суррогатную пару ED A1 8 C ED BE B4 в U + 233B4. Декодирование недопустимых последовательностей может иметь последствия для безопасности или вызывать другие проблемы.