Имена файлов превратились в набор символов
Как это выглядит
Архив распаковался, файлы на месте и открываются, но названия превратились в бессмысленный набор символов. Найти нужный счёт по имени невозможно.
Коротко
Формат ZIP исторически не хранит информацию о том, в какой кодировке записаны имена файлов. Архиватор при распаковке угадывает — и на русских именах угадывает неверно. Содержимое файлов при этом не затронуто совсем.
Почему так происходит
01Кодировка имени не записана в архив
Классический ZIP хранит имена байтами без указания кодировки. Архиватор на другой системе читает их по-своему, и кириллица рассыпается.
02Архив собран на другой операционной системе
Особенно заметно при обмене между macOS и Windows: соглашения об именах разные, и русские названия страдают чаще всего.
03Имя обрезано по длине пути
Отдельная беда: длинный путь плюс длинное имя дают ошибку распаковки или обрезанное имя. Проявляется на вложенных папках.
Как понять, что причина именно эта
- Откройте один из файлов: если содержимое читается нормально, испорчены только имена.
- Посмотрите на файлы с латинскими именами в том же архиве: они целы, и это подтверждает, что дело в кодировке кириллицы.
- Попробуйте открыть архив другим архиватором: часть из них позволяет выбрать кодировку имён при распаковке.
Как починить
Распаковать с выбором кодировки
- 1.Откройте архив архиватором, умеющим задавать кодировку имён.
- 2.Выберите кириллическую однобайтовую кодировку и посмотрите предпросмотр списка файлов.
- 3.Распакуйте, когда имена в списке станут читаемыми.
не чинит: Не поможет, если архив собран с уже испорченными именами: тогда исходных названий в нём нет.
Ориентироваться на содержимое, а не на имя
- 1.Откройте файлы и переименуйте нужные по содержанию.
- 2.Для десятка документов это быстрее, чем разбираться с кодировками.
не чинит: На сотне файлов способ превращается в отдельную работу.
Попросить прислать иначе
- 1.Попросите отправителя переслать файлы без архива или назвать их латиницей.
- 2.Это убирает причину, а не следствие.
не чинит: Зависит от второй стороны и занимает время.
Когда мы не нужны
Имена файлов не имеют отношения к содержимому документов. Если счета открываются и читаются, разбор им не требуется из-за одних только названий — это задача на распаковку, а не на распознавание.
Что с этим делает наша выгрузка
При загрузке мы сохраняем исходное имя файла, заменяя на подчёркивание только служебные символы, недопустимые в имени: слэши, двоеточия, звёздочки, кавычки, угловые скобки и пробелы. Кириллицу мы не трогаем и не транслитерируем — русское название дойдёт до вас таким, каким было. Распаковкой архивов пилот не занимается: загружать нужно сами документы, принимаются PDF, JPEG и PNG.
Вопросы
Содержимое файлов пострадало?
Нет. Имя файла и его содержимое хранятся раздельно. Испорченное имя означает ровно испорченное имя.
Почему латинские имена не ломаются?
Латиница и цифры одинаково кодируются практически везде. Проблема возникает только там, где символ занимает больше одного байта.
Если ошибка не в Excel, а в самих документах
Пилот на 30 дней: пришлите самый неудобный счёт, разберём вручную под ваш формат и вернём готовую таблицу.
Первый счёт разбираем вручную под ваш формат. Списание разовое, автопродления нет. Источник перехода: seo/oshibki/kirillica-v-imeni-faila.
Другие ошибки