Практическое задание

Эта задача — шаг 6 курса «Кодировки и контрольные суммы»

iconv: смени кодировку

легко~3 мин

Файл /root/in.txt содержит текст café в кодировке UTF-8 (буква é занимает 2 байта). Перекодируй его в ISO-8859-1 (latin1) в файл /root/out.txt, где é займёт один байт.

Что потренируешь:
  • iconv
  • -f
  • -t
  • кодировки
  • UTF-8
  • ISO-8859-1

Разбор темы

Одни и те же символы в разных кодировках представлены разными байтами: в UTF-8 «é» — два байта (0xC3 0xA9), в однобайтовой ISO-8859-1 — один (0xE9). iconv -f ИСХОДНАЯ -t ЦЕЛЕВАЯ перекодирует поток между наборами символов. Список поддерживаемых кодировок даёт iconv -l. Если символ не представим в целевой кодировке, iconv по умолчанию падает — суффикс //TRANSLIT подбирает похожий символ, //IGNORE выбрасывает непереводимые. Перекодировка нужна при работе со старыми файлами, БД и legacy-системами, где не UTF-8.

Что проверяется

  1. файл стал короче
  2. é записан одним байтом latin1

Как это выглядит