Однобайтовые символы UTF-8 отлично отображаются на символы Latin-1 (ISO 8859-1) (те, что ниже кода символа из 128);в основном символы ASCII по умолчанию.Если у меня есть строка в кодировке UTF-8 и я передаю ее функции, которая ожидает строку Latin-1, есть ли вероятность того, что функция Latin-1 неверно истолковывает части многобайтовых символов UTF-8 как символы ASCII?
Я предполагаю, что что-то подобное может произойти:
(imagniray) Многобайтовый символ UTF-8: 0xA330
(mis-) интерпретируется функцией Latin-1 как две латиницы.1 символ: 0xA3
0x30
Первый из этих символов не лежит в наборе ASCII, а второй - это код ASCII для символа 0.Возможно ли, что многобайтовый символ UTF-8 создает артефакт, который выглядит как однобайтовый символ UTF-8 / ASCII, как в примере выше?
Из моего понимания UTF-8 только однобайтовые символысодержат любые байты с не значащим значащим битом, поэтому в основном многобайтовые символы никогда не содержат байта, который может быть неверно истолкован функцией Latin-1 как действительный символ ASCII (поскольку все эти символы имеют не значащий бит значащим).Но я хочу убедиться, что это правда, и я не облажаюсь, потому что это может иметь последствия для безопасности при работе с очисткой данных - что я, очевидно, сейчас и делаю.