Как исправить кодировку имен файлов

  • Печать

Страницы: [1]   Вниз

Тема: Как исправить искаженную кодировку ИМЕН файлов?  (Прочитано 1973 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн
muslimgauze

Система в UTF8, был распакован архив запакованный на хз какой ОС и в какой системной кодировке.
При распаковке имена выглядят, как кириллица в CP886, когда в DOSе нет руссификатора, то есть сплошное оаоое c умляутами и значки копирайта, параграфа и йены ;)

Собственно два вопроса:

как понять, какая была исходная кодировка имен файлов
как ее привести в нормальный вид

ЗЫ: еще раз — не кодировка текста в файлах, а именно их имен!


Оффлайн
victor00000


Оффлайн
muslimgauze

iconv -l
man iconv


[содержимое удалено] 2.2
Пока предупредил.
| τοΖεη |


ЕЩЕ РАЗ прочти вопрос!
мне НЕ надо конвертировать содержимое файлов и я не настолько идиот, что бы спрашивать, как это делается

« Последнее редактирование: 11 Марта 2016, 09:01:56 от τοΖεη »


Оффлайн
КНВ


Оффлайн
muslimgauze

Есть расширение для наутилуса — фалнеймрепирер, как то так. Ещё онлайн сервисы:
http://2cyr.com/decode/?lang=ru

КАК онлайн-сервис поможет «починить» ИМЯ файла?
я понимаю, что можно скопировать его, как текст, сконвертить, а потом руками переименовать
но что делать, если таких файлов сотня?


Оффлайн
КНВ

Это для сложных случаев. Тебе, скорее всего, через наутилус можно.


Оффлайн
muslimgauze

Есть расширение для наутилуса — фалнеймрепирер, как то так. Ещё онлайн сервисы:
http://2cyr.com/decode/?lang=ru

был не прав, каюсь
хотя бы узнал направление :)
имена в кодировке «cp866 отображается, как iso8859-9»


Пользователь решил продолжить мысль [time]11 Март 2016, 10:19:26[/time]:


Это для сложных случаев. Тебе, скорее всего, через наутилус можно.

 nautilus-filename-repairer
 пробую


Пользователь решил продолжить мысль [time]11 Март 2016, 10:26:38[/time]:


увы, но не то


Пользователь решил продолжить мысль 11 Марта 2016, 09:48:04:


find ./ -type f -exec bash -c ‘mv «$1» «$(echo $1 | convmv -f utf-8 -t iso88599 —notest * | convmv -f iso88599 -t utf-8 * —notest)»‘ — {} ;

странная ситуация, но имена стали «честными» cp866
после чего выбрал в левой части mc данную кодировку и скопировал «направо», где кодировка utf-8
и всё!

« Последнее редактирование: 11 Марта 2016, 09:48:04 от muslimgauze »


  • Печать

Страницы: [1]   Вверх

Содержание

  1. Имена файлов кракозябрами windows
  2. Кракозябры вместо русских букв
  3. Кракозябры вместо русских букв
  4. Исправление проблемы с отображением русских букв в Windows 10
  5. Исправляем отображение русских букв в Windows 10
  6. Способ 1: Изменение языка системы
  7. Способ 2: Редактирование кодовой страницы

Имена файлов кракозябрами windows

В ряде случаев после установки Windows 7, в некоторых программах появляются кракозябры вместо русских букв. Многие называют их иерогливы, но смысл от этого не меняется – это символы, которые с точки зрения читателя не несут никакого смысла. Переустанавливать систему из-за этого не нужно, есть простой и действенный способ.

Кракозябры вместо русских букв

На самом деле это не иероглифы, а всего навсего сбой в кодировке. Случиться это может при неверных настройках для программ не поддерживающих Юникод. Для решения этой проблемы потребуется 2 действия: внести изменения в реестр и выбрать в качестве языка для программ не поддерживающих Юникод – Русский.

Для начала откройте “блокнот” и создайте в нём текстовый документ со следующим кодом:

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USERControl PanelInternational]
“Locale”=”00000419″
“LocaleName”=”ru-RU”
“s1159″=”»
“s2359″=”»
“sCountry”=”Russia”
“sCurrency”=”р.”
“sDate”=”.”
“sDecimal”=”,”
“sGrouping”=”3;0″
“sLanguage”=”RUS”
“sList”=”;”
“sLongDate”=”d MMMM yyyy ‘г.’”
“sMonDecimalSep”=”,”
“sMonGrouping”=”3;0″
“sMonThousandSep”=” ”
“sNativeDigits”=”0123456789″
“sNegativeSign”=”-”
“sPositiveSign”=”»
“sShortDate”=”dd.MM.yyyy”
“sThousand”=” ”
“sTime”=”:”
“sTimeFormat”=”H:mm:ss”
“sShortTime”=”H:mm”
“sYearMonth”=”MMMM yyyy”
“iCalendarType”=”1″
“iCountry”=”7″
“iCurrDigits”=”2″
“iCurrency”=”1″
“iDate”=”1″
“iDigits”=”2″
“NumShape”=”1″
“iFirstDayOfWeek”=”0″
“iFirstWeekOfYear”=”0″
“iLZero”=”1″
“iMeasure”=”0″
“iNegCurr”=”5″
“iNegNumber”=”1″
“iPaperSize”=”9″
“iTime”=”1″
“iTimePrefix”=”0″
“iTLZero”=”0″
[HKEY_CURRENT_USERControl PanelInternationalGeo]
“Nation”=”203″

Затем сохраните его в файле под именем RUS in WIN7.reg и после этого выполните его (не забываем при сохранении выбрать тип файла “все файлы”, иначе вы сохраните свой документ с расширением txt и он не будет запускаться). После этого перезагружаем компьютер. Осталось только зайти в панель управления, выбрать “Часы, язык и регион”, выбрать “Смена раскладки клавиатуры и других способов ввода” и перейти на вкладку “дополнительно”. Тут ищем пункт “Язык программ не поддерживающих Юникод” и выбираем Русский. перезагружаемся.

Теперь все программы будут отображать символы корректно и кодировка будет выбираться именно та, которая нужна нам. Никаких больше кракозябр и иероглифов.

Кракозябры вместо русских букв

Кракозябры — что за слово такое интересное? Этим словом обычно русские пользователи называют неправильное/неверное отображение (кодировку) символов в программах или самой Операционной Системы.
Почему такое случается? Однозначного ответа Вы не найдёте. Это может быть в следствии проделок наших «любимых» вирусов, может из-за сбоя работы ОС Windows (например пропало электричество и выключился компьютер), может программа создала конфликт с другой или ОС и всё «полетело». В общем причин может быть много, а самая интересная — это «Оно само вот так взяло и сломалось».
Читаем статью и узнаём как исправить проблему с кодировкой в программах и ОС Windows, раз уж она случилась.

Кто до сих пор не понял о чём я имею ввиду, вот вам несколько скриншотов:

За отображение кодировки (шрифта) в Windows отвечает несколько «вещей» — это язык, реестр и файлы самой ОС. Теперь будем их проверять по отдельности и по пунктам.

Как убрать и исправить кракозябры вместо русского (русских букв) в программе или Windows.

1. Проверяем установленный язык для программ, не поддерживающих Юникод. Может он у Вас сбился.

Итак, переходим по пути: Панель управления — Язык и региональные стандарты — вкладка Дополнительно
Там смотрим чтобы язык был Русский.

Перезагружаемся или перезапускаем проводник и смотрим не исчезла ли проблема. Нет? Тогда следующий пункт.

2. Может у Вас слетели системные настройки шрифтов? Тогда вот Вам один хороший файл, который содержит стандартные настройки шрифтов для Windows
standartnye_shrifty.zip 1,05 Kb cкачиваний: 32767
На всякий случай вот Вам архиваторы

Внутри настройки реестра для Windows XP, Vista, 7 и 8

Для тех, кто любознателен или не доверяет сайту или мне, показываю содержимое этих файлов.
Windows XP

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionFontMapper]
«ARIAL»=dword:000000cc
«DEFAULT»=dword:000000cc
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionFontSubstitutes]
«Arial,0″=»Arial,204»
«Arial,204″=»Arial,204»
«Arial Cyr,0″=»Arial,204»
«Arial CYR,204″=»Arial,204»
«Comic Sans MS,0″=»Comic Sans MS,204»
«Courier,0″=»Courier New,204»
«Courier,204″=»Courier New,204»
«Courier New Cyr,0″=»Courier New,204»
«Courier New CYR,204″=»Courier New,204»
«Fixedsys,0″=»Fixedsys,204»
«Helv,0″=»MS Sans Serif,204»
«MS Sans Serif,0″=»MS Sans Serif,204»
«MS Sans Serif,204″=»MS Sans Serif,204»
«MS Serif,0″=»MS Serif,204»
«MS Shell Dlg,0″=»MS Sans Serif,204»
«MS Shell Dlg,204″=»MS Sans Serif,204»
«Small Fonts,0″=»Small Fonts,204»
«System,0″=»Arial,204»
«Tahoma,0″=»Tahoma,204»
«Times New Roman,0″=»Times New Roman,204»
«Times New Roman,204″=»Times New Roman,204»
«Times New Roman Cyr,0″=»Times New Roman,204»
«Times New Roman CYR,204″=»Times New Roman,204»
«Tms Rmn,0″=»MS Serif,204»
«Verdana,0″=»Verdana,204»

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionFontMapper]
«ARIAL»=dword:00000000

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionFontSubstitutes]
«Arial,0″=»Arial,204»
«Comic Sans MS,0″=»Comic Sans MS,204»
«Courier,0″=»Courier New,204»
«Courier,204″=»Courier New,204»
«MS Sans Serif,0″=»MS Sans Serif,204»
«Tahoma,0″=»Tahoma,204»
«Times New Roman,0″=»Times New Roman,204»
«Verdana,0″=»Verdana,204»

Вы сами можете скопировать этот текст в Блокнот, а затем Сохранить как файл с любым названием, но главное чтобы расширение было reg .

После запуска reg файла, Вы должны согласиться с предупреждением системы о внесении изменений в реестр.

Снова перезагружаемся или перезапускаем проводник. Если проблема не пропала, то переходим к следующему пункту.

3. Меняем в реестре кодировку на стандартную. Здесь всё то же самое что и в пункте 2.
Снова даю Вам файл для разных версий ОС Windows
standartnaya_kodirovka.zip 1,21 Kb cкачиваний: 20132
снова даю текст, содержащийся в этих файлах.
Для Windows XP

Windows Registry Editor Version 5.00

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlNlsCodePage]
«1250»=»c_1251.nls»
«1251»=»c_1251.nls»
«1252»=»c_1251.nls»
«1253»=»c_1251.nls»
«1254»=»c_1251.nls»
«1255»=»c_1251.nls»

[HKEY_CURRENT_USERControl PanelInternational]
«Locale»=»00000419»
«LocaleName»=»ru-RU»
«s1159″=»»
«s2359″=»»
«sCountry»=»Russia»
«sCurrency»=»р.»
«sDate»=».»
«sDecimal»=»,»
«sGrouping»=»3;0»
«sLanguage»=»RUS»
«sList»=»;»
«sLongDate»=»d MMMM yyyy ‘г.’»
«sMonDecimalSep»=»,»
«sMonGrouping»=»3;0»
«sMonThousandSep»=» »
«sNativeDigits»=»0123456789»
«sNegativeSign»=»-»
«sPositiveSign»=»»
«sShortDate»=»dd.MM.yyyy»
«sThousand»=» »
«sTime»=»:»
«sTimeFormat»=»H:mm:ss»
«sShortTime»=»H:mm»
«sYearMonth»=»MMMM yyyy»
«iCalendarType»=»1»
«iCountry»=»7»
«iCurrDigits»=»2»
«iCurrency»=»1»
«iDate»=»1»
«iDigits»=»2»
«NumShape»=»1»
«iFirstDayOfWeek»=»0»
«iFirstWeekOfYear»=»0»
«iLZero»=»1»
«iMeasure»=»0»
«iNegCurr»=»5»
«iNegNumber»=»1»
«iPaperSize»=»9»
«iTime»=»1»
«iTimePrefix»=»0»
«iTLZero»=»0»

[HKEY_CURRENT_USERControl PanelInternationalGeo]
«Nation»=»203»

Эти действия Вы можете сделать и вручную, если хотите — пишите в комментариях и я напишу в какой ветке что находится и что менять нужно.

И снова нужно перезагрузиться или перезапустить проводник (перезайти в систему).

Кстати, после этого и предыдущего пункта проверяйте на всякий случай то, что написано в первом пункте. Может быт такое, что язык сменится на Английский и нужно будет поставить Русский.

4. Меняем системные файлы. А если точнее, то мы не будем их менять, а лишь переименуем, чтобы до системы дошло наконец что мы хотим.

Первым делом идём по пути C:WindowsSystem32 и листаем вниз в поисках следующих файлов:
C_1250.NLS
C_1252.NLS
C_1253.NLS
C_1254.NLS
C_1255.NLS
Нашли? Отлично. Теперь переименовываем их. Лучше будет просто добавить к названию что-то, например .bak .
Здесь есть небольшая загвоздка, заключающаяся в том, что это системные файлы Windows, и ОС не даст Вам вот так просто переименовать их. Для этого нужно находиться под учетной записью администратора.
Если уж совсем не получается, то кликаем правой кнопкой мыши по файлу и выбираем пункт Свойства. В окне свойств выбираем вкладку Безопасность и жмем кнопку Дополнительно.

Всё. Теперь можете переименовать файл. И так делается со всеми файлами.

4.1 Далее что нам нужно сделать, после того как переименовали файлы, это скопировать файл C_1251.NLS в какую-нибудь папку или место. Это самый нужный файл, который как раз и отвечает за русскую кодировку.

4.2 Теперь этот файл переименовываем как C_1252.NLS , копируем и вставляем в папку System32 .

4.3 В принципе можно на этом уже и закончить, но если начали, то давайте делать до конца. А это значит что нужно вновь переименовать тот файл, который скопировали в папку (первоначально он был C_1251.NLS , а сейчас C_1252.NLS ), на C_1250.NLS и потом его снова вставить в System32 .
Затем всё это повторяем для других файлов, переименовывая и вставляя C_1253.NLS , C_1254.NLS и C_1255.NLS в папку system32.

Не запутались? Может быть.

В итоге в папке C:WindowsSystem32 у Вас должно быть так:

Надеюсь доступно объяснил. Если проще, то мы просто берем файл C_1251.NLS и переименовываем его в другие, перед этим те самые другие переименовав, чтобы не было конфликтов в названии.
Вот как то так.

5. Нашёл в интернете интересную программку, сам её не тестировал, но автор обещает что с её помощью можно исправить кракозябры.

находится она по ЭТОЙ ссылке.

6. Последний пункт, в котором я даю Вам файл, который помог мне всё исправить когда-то и именно поэтому я его оставил на память. Вот архив:
krakozyabrooff.zip 1,85 Kb cкачиваний: 27004
Внутри два файла: кракозбрoff.cmd и кракозбрoff.reg

Принцип у них одинаковый — исправить всеми способами иероглифы, квадратики, вопросы или восклицательные знаки в програмах и ОС Windows (в простонародье кракозябры). Я пользовался первым и мне помогло.

Ну и напоследок пара советов:
1) Если работаете с реестром, то не забывайте делать бэкап (резервную копию) на тот случай, если что-то пойдёт не так.
2) Желательно после каждого пункта проверять 1ый пункт.

На этом всё. Теперь Вы знаете как исправить убрать/исправить Кракозябры (квадратики, иероглифы, восклицательные и вопросительные знаки) в программе или Windows.

Исправление проблемы с отображением русских букв в Windows 10

В большинстве случаев проблемы с отображением кириллицы во всей операционной системе Windows 10 или в отдельных программах появляются сразу после ее установки на компьютер. Связана неполадка с неправильно заданными параметрами либо с некорректной работой кодовой страницы. Давайте приступим к рассмотрению двух действенных методов для исправления возникшей ситуации.

Исправляем отображение русских букв в Windows 10

Существует два способа решения рассматриваемой проблемы. Связаны они с редактированием настроек системы или определенных файлов. Они отличаются по сложности и эффективности, поэтому мы начнем с легкого. Если первый вариант не принесет никакого результата, переходите ко второму и внимательно следуйте описанным там инструкциям.

Способ 1: Изменение языка системы

В первую очередь хотелось бы отметить такую настройку как «Региональные стандарты». В зависимости от его состояния и производится дальнейшее отображение текста во многих системных и сторонних программах. Редактировать его под русский язык можно следующим образом:

  1. Откройте меню «Пуск» и в строке поиска напечатайте «Панель управления». Кликните на отобразившийся результат, чтобы перейти к этому приложению.

Среди присутствующих элементов отыщите «Региональные стандарты» и нажмите левой кнопкой мыши на этот значок.

Появится новое меню с несколькими вкладками. В данном случае вас интересует «Дополнительно», где нужно кликнуть на кнопку «Изменить язык системы…».

Корректировки вступят в силу только после перезагрузки ПК, о чем вы и будете уведомлены при выходе из меню настроек.

Дождитесь перезапуска компьютера и проверьте, получилось ли исправить проблему с русскими буквами. Если нет, переходите к следующему, более сложному варианту решения этой задачи.

Способ 2: Редактирование кодовой страницы

Кодовые страницы выполняют функцию сопоставления символов с байтами. Существует множество разновидностей таких таблиц, каждая из которых работает с определенным языком. Часто причиной появления кракозябров является именно неправильно выбранная страница. Далее мы расскажем, как править значения в редакторе реестра.

Перед выполнением этого метода настоятельно рекомендуем создать точку восстановления, она поможет вернуть конфигурацию до внесения ваших изменений, если после них что-то пойдет не так. Детальное руководство по данной теме вы найдете в другом нашем материале по ссылке ниже.

  1. Нажатием на комбинацию клавиш Win + R запустите приложение «Выполнить», в строке напечатайте regedit и кликните на «ОК».
  2. В окне редактирования реестра находится множество директорий и параметров. Все они структурированы, а необходимая вам папка расположена по следующему пути:

Выберите «CodePage» и опуститесь в самый низ, чтобы отыскать там имя «ACP». В столбце «Значение» вы увидите четыре цифры, в случае когда там выставлено не 1251, дважды кликните ЛКМ на строке.

Двойное нажатие левой кнопкой мыши открывает окно изменения строковой настройки, где и требуется выставить значение 1251 .

Если же значение и так уже является 1251, следует провести немного другие действия:

    В этой же папке «CodePage» поднимитесь вверх по списку и отыщите строковый параметр с названием «1252» Справа вы увидите, что его значение имеет вид с_1252.nls. Его нужно исправить, поставив вместо последней двойки единицу. Дважды кликните на строке.

Откроется окно редактирования, в котором и выполните требуемую манипуляцию.

После завершения работы с редактором реестра обязательно перезагрузите ПК, чтобы все корректировки вступили в силу.

Подмена кодовой страницы

Некоторые пользователи не хотят править реестр по определенным причинам либо же считают эту задачу слишком сложной. Альтернативным вариантом изменения кодовой страницы является ее ручная подмена. Производится она буквально в несколько действий:

    Откройте «Этот компьютер» и перейдите по пути C:WindowsSystem32 , отыщите в папке файл С_1252.NLS, кликните на нем правой кнопкой мыши и выберите «Свойства».

Переместитесь во вкладку «Безопасность» и найдите кнопку «Дополнительно».

Вам нужно установить имя владельца, для этого кликните на соответствующую ссылку вверху.

В пустом поле впишите имя активного пользователя, обладающего правами администратора, после чего нажмите на «ОК».

Вы снова попадете во вкладку «Безопасность», где требуется откорректировать параметры доступа администраторов.

Выделите ЛКМ строку «Администраторы» и предоставьте им полный доступ, установив галочку напротив соответствующего пункта. По завершении не забудьте применить изменения.

Вернитесь в открытую ранее директорию и переименуйте отредактированный файл, поменяв его расширение с NLS, например, на TXT. Далее с зажатым CTRL потяните элемент «C_1251.NLS» вверх для создания его копии.

Нажмите на созданной копии правой кнопкой мыши и переименуйте объект в C_1252.NLS.

Вот таким нехитрым образом происходит подмена кодовых страниц. Осталось только перезапустить ПК и убедиться в том, что метод оказался эффективным.

Как видите, исправлению ошибки с отображением русского текста в операционной системе Windows 10 способствуют два достаточно легких метода. Выше вы были ознакомлены с каждым. Надеемся, предоставленное нами руководство помогло справиться с этой неполадкой.

Ребят, вы тут все умные программисты, помогите с такой проблемой:
есть куча файлов, которые называются

Сладкие истории - Вишневые пирожные.avi

насколько я понял это cp1251 прочитанный как UTF-8. Сделайте, пожалуйста, скриптик на питоне или еще чем-нибудь, который их все скопом переименует в нормальный человеческий язык!

P.S. решение нужно для Windows.

При работе с файлами сайтов через так называемые FTP-клиенты (например Filezilla), можно столкнуться с проблемой неправильной кодировки, в результате чего названия файлов будут отображаться в виде иероглифов.

Для тех, кто может не знать, FTP-клиент, если объяснять простым языком — это специальная программа, позволяющая получать доступ к удалённому FTP-серверу, где хранятся файлы, например, к хостингу с файлами вашего сайта.

Чтобы было понятнее, вот вам простой пример: через фтп-клиент Filezilla вызагрузили файлы в папку своего сайта на хостинге, при этом файлы имели обычные русскоязычные названия. Затем смотрите через административную панель самого сайта и видите, чтобы загруженные файлы отображаются вот так:

Или наоборот, через админпанель сайта загрузили файлы, которые также имели нормальные названия с русскими символами, после чего в самом FTP клиенте вы их не узнаете из-за иероглифов (а слева на изображении ниже видно как файлы выглядят в оригинале) :)

В связи с этим работать при помощи FTP клиента становится слишком уж неудобно и порой просто невозможно, однако есть способ легко решить проблему (заключается она в неверно выставленной кодировке фтп клиента) и в этой статье я покажу, на примере Filezillа, как победить проблему с иероглифами при загрузке файлов, т.е. правильно выставить кодировку.

FTP клиентов множество и в других может возникать эта же проблема, которая решается аналогичным способом.

Как сменить кодировку в Filezilla

В файлзилле кодировка при подключении к нужному ftp-серверу меняется следующим образом:

  1. Необходимо через менеджер сайтов добавить новое подключение, то есть указать адрес, к которому вы будете подключаться (потому что через быстрое подключение кодировка не меняется, остаётся стандартной). Для этого откройте меню «Файл» — «Менеджер сайтов».

    Если сайт в программе у вас уже создан, переходите сразу к шагу №2.

    Создайте новый сайт, нажав соответствующую кнопку:

    Задайте имя новому сайту (чтобы отличать подключения, в случае если будете подключаться к нескольким сайтам) в списке [1], нажав по нему левой кнопкой мыши 1 раз и как выделится синим ещё 1 раз, после чего укажите название.

    Затем задайте настройки подключения [2], которые вам должен выдавать хостинг-провайдер: FTP или SFTP протокол, хост (адрес подключения), порт (если требуется нестандартный).

    И ниже нужно указать логин и пароль для подключения [3]:

    Готово, подключение к сайту создано!

  2. Когда у вас уже создано подключение к сайту, остаётся только настроить кодировку и для этого в менеджере сайтов кликните по нужному сайту, чтобы открыть его настройки и перейдите на вкладку «Кодировка».

    Выберите значение UTF-8 принудительно, затем сохраните настройки, нажав «ОК».

    Потому что функция «Автоопределение» зачастую неверное выставляет кодировку, от чего появляются описанные выше в начале статьи проблемы.

Всё готово! Теперь осталось подключиться к сайту с новыми настройками, для этого из главного окна файлзиллы из выпадающего списка выберите нужный сайт:

Если сайт уже был у вас открыт до того как вы сменили кодировку, то обязательно переподключитесь к нему!

Заключение

В результате, после того как вручную в Filezilla вручную выставите кодировку, программа будет правильно загружать файлы на нужный вам сервер (хостинг) и проблема с иероглифами в названиях исчезнет.

Повторюсь, что если вы пользуетесь другим FTP-клиентом вместо файлзиллы, то там также обязательно будет функция ручной смены кодировки и процесс изменения происходит аналогичным образом.


Если пригодилась статья, поделитесь ей в соц.сетях, ведь она может и другим пригодится! Буду рад любым вопросам в комментариях, а также вашему адекватному мнению по теме :)

Спасибо за внимание, увидимся! ;)

Материал из Кафедра ИУ5 МГТУ им. Н.Э.Баумана — студенческое сообщество

В статье рассказывается о том, как упаковывать файлы в ZIP-архив с кодировкой имён в UTF-8.

Содержание

  • 1 Описание проблемы
  • 2 Почему так
  • 3 Что делать
    • 3.1 Как это автоматизировать

Описание проблемы

Иногда при открытии архивов ZIP в именах файлов написаны иероглифы. В основном, это случается при работе с архивами, упакованными в среде Windows, в других операционных системах, например Linux и Mac OS.

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

Zip.bad.enc.png

Почему так

Такое получается из-за разных кодировок в разных операционных системах. А точнее из-за того, что Windows до сих пор использует свою WIN1251, когда давно уже существует UTF-8, созданная специально во избежание подобных проблем. ZIP, хоть и являясь старейшим и распространённейшим форматом архивов, испытывает проблемы с этим при переносе архива с платформы на платформу.

Не имеет значения, какую программу-архиватор вы используете — причина именно в самом формате ZIP. Для проверки мы упаковали тестовый архив с настройками по умолчанию сначала архиватором WinRAR, затем — архиватором 7-Zip. После чего просмотрели архивы в среде Mac OS — в обоих архивах кириллические имена файлов превратились в набор кракозябр.

Ну так может тогда не стоит использовать формат ZIP и паковать всё, например, в 7z? В общем-то, это хорошая идея, но дело в том (и это единственная причина), что ZIP, как уже говорилось, является наиболее распространённым форматом архивов, потому чтобы большинство ваших пользователей смогло распаковать ваш архив, использовать рекомендуется именно его.

Что делать

Нужно как-то принудительно указать архиватору, что при кодировке имён файлов он должен использовать UTF-8.

И у архиватора 7-Zip есть такая возможность. Формат команды следующий:

7z.exe a -tzip -mcu archname.zip file2pack.txt

Здесь:

7z.exe — имя исполняемого файла архиватора;
a — команда архивации;
-tzip — формат архива: ZIP;
-mcu — именно эти ключи указывают на кодировку UTF-8;
archname.zip — имя итогового файла архива;
file2pack.txt — файлы для упаковки.

После создание архива такой командой кириллица в именах файлов сохраняется на всех платформах, использующих UTF-8 (то есть, практически везде):

Zip.good.enc.png

Очередная медаль на грудь славного архиватора 7-Zip.

Как это автоматизировать

Понятное дело, что каждый раз лезть в командную строку и писать там команду архивации с необходимыми ключами очень сильно обламывает, ведь хочется, чтобы всё выполнялось в два клика мышью.

Как вариант, можно написать свою оболочку для 7z.exe или просто создать .bat-файл.

А можно воспользоваться приложением Open++ и добавить нужный пункт в контекстное меню Windows.

Понравилась статья? Поделить с друзьями:

Не пропустите также:

  • Антитеза как ее найти в стихе
  • Как найти зал для спорта
  • Как найти медиану зная координаты вершины
  • Как найти уровень поддержки на графике
  • Как найти работу моушн дизайнеру

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии