Да.Это был преднамеренный выбор в конструкции UTF-8, чтобы существующий 7-битный ASCII был совместим.
Кодирование также разработано намеренно, чтобы 7-битные значения ASCII не могли ничего значить , кроме их эквивалент ASCII.Например, в UTF-16 символ евро (€) кодируется как 0x20 0xAC.Но 0x20 это ПРОБЕЛ в ASCII.Поэтому, если только ASCII-алгоритм пытается разделить пробелом строку, например, «€ 10», закодированную в UTF-16, он повредит данные.
Этого не может быть в UTF-8.€ там кодируется как 0xE2 0x82 0xAC, ни одно из которых не является допустимым 7-битным значением ASCII.Таким образом, алгоритм ASCII, который наивно разделяется на ASCII SPACE (0x20), все равно будет работать, даже если он ничего не знает о кодировке UTF-8.(То же самое верно для любого символа ASCII, такого как косая черта, запятая, обратная косая черта, проценты и т. Д.) UTF-8 - невероятно умная кодировка текста.