У меня есть документ, который содержит различные специальные символы, такие как à © ÿ  ° à † oºi
Я написал следующие две команды, которые оба работают на «одиночных» ищет символы, такие как Ã Â ± È.Замена специальных символов
Однако ни одна из них не работает со специальными символами, перечисленными выше.
Эта команда работает с помощью двух байт шестигранные десятичные (Чтобы заменить Ã © с )
sed -i 's/\xc3\xA9/A/g' test.csv
Эта команда использует utf8 для замены символов:
CHARS=$(python -c 'print u"\u00a9".encode("utf8")') sed -i 's/['"$CHARS"']/A/g' $filename
либо из этих команд должны работать, но не делать.
Скорее всего, это не специальные символы, но некоторые данные * неверно истолкованы * как кодируемые окнами-1252, когда они фактически закодированы в utf-8. Вы должны попытаться определить кодировку и прочитать данные в соответствии с этой кодировкой, вместо того чтобы выполнять некоторые случайные замены. Например, «Ã ©», вероятно, является кодировкой utf-8 буквы «é», поэтому было бы абсурдно заменить ее на «A». –
Есть ли способ перекодировки этих специальных данных в utf-8 с помощью команды? –
Это уже * есть * utf-8; ваш терминал или редактор или что-то другое - это как некоторая другая кодировка (windows-1252 или iso8859). – chepner