У меня есть текст, закодированный в ANSI:
Когда я попытался преобразовать его в UTF-8 (используя меню Кодировка> UTF-8 в Блокноте ++), я получил несколько странных символов:
Я думал, что UTF-8 - это расширенный набор ANSI, и что впоследствии у меня не будет таких проблем. Могу ли я в любом случае избежать появления этих странных персонажей?
notepad++
character-encoding
utf-8
ansi
user3658425
источник
источник
Ответы:
UTF-8 - это не кодировка, а кодировка Unicode. Первые 128 символов совпадают с ASCII, но отличаются старшими 128 байтами. Байт с установленным старшим битом (или> = 0x80) является расширенным символом в ASCII, тогда как в UTF-8 он указывает начальный байт многобайтовой последовательности. Это случай 0x93 или 0x94 выше. Тем не менее, я не вижу ничего странного в этом файле. Это умные цитаты или цитаты с разными формами для открытия и закрытия цитат, которые вы часто видите при использовании текстового редактора, такого как MS Word
редактировать
Вопрос отредактировал. Я думаю, это потому, что вы выбрали не тот инструмент. В
encode
пунктах меню для изменения кодировки , если у вас есть неправильные проявления характера. Он просто обрабатывает ту же последовательность байтов, считанную с диска, что и другая кодировка. Поскольку ASCII и UTF-8 отличаются, у вас будет некорректная последовательность байтов UTF-8, и вы увидите результат выше. Вы должны выбратьconvert to UTF-8
для него, чтобы изменить все входные байтыВы также перепутали ANSI и ASCII. ANSI часто ссылается на Windows-1252, который является набором символов, используемым в английском Windows и некоторых языках Западной Европы. Это расширенный набор ISO 8859-1, хотя ISO 8859-1 также можно назвать ANSI. ISO 8859-1 - это также первые 256 кодовых точек Unicode, так что это подмножество Unicode, но оно не совместимо с кодировкой UTF-8. ASCII является 7-битным набором символов и является подмножеством ANSI, которое кодируется 8 битами, но иногда его также называют ANSI, хотя и не очень правильно
https://en.wikipedia.org/wiki/ANSI_character_set
В общем, отношения между наборами символов следующие
источник