Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

6. Использование символов национального алфавита в именах файлов

Заметка: Данная секция этого HOWTO отсутствует в англоязычном варианте. Все дополнения и исправления присылайте на адрес переводчика.

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

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

  • для обеспечения совместимости записанных дисков с DOS кодировка символов в ISO9660 должна быть CP866 и имена файлов в формате 8.3 (8 символов - имя, 3 символа - расширение)
  • некоторые DOS драйвера CDROM приводов могут не поддерживать не ASCII символов в именах файлов
  • для обеспечения совместимости записанных дисков с Windows необходимо добавлять расширение JOLIET, которое использует UNICODE кодировку имен файлов.
  • некоторые версии UNIX систем не поддерживают JOLIET расширение (Linux поддерживает при включении соответствующей опции в при сборке ядра) и если требуется совместимость с ними должно использоваться RockRidge расширение.

Родная файловая система Linux - ext2 не делает никаких предположений о кодировке символов, она просто хранит имена файлов в 8-битном представлении. Правильность интерпретации кодировки имени файла зависит от настроек locale программы которая его создала и программы которая выводит его пользователю. Так как Linux способен работать со всеми русскими кодировками (cp866, cp1251, koi8-r, iso8859-5), то вполне возможен случай, когда пользователь создаст файл в терминале с cp866 настройками, а затем попытается его считать его (возможно на другом компьютере) в терминале с koi8-r настройками, и будет озадачен.

Текущая версия mkisofs-1.12.1 при составлении имен файлов в ISO9660 заменяет все не ASCII символы (в том числе и русские) на знак '_'(подчеркивание). Таким образом без применения патчей к mkisofs невозможно записать диск совместимый с DOS. Мне пока не удалось отыскать такой патч, если у кого-то есть положительный опыт записи таких дисков - пришлите мне информацию и я включу ее сюда.

Универсальный метод - включить оба расширения JOLIET и RockRidge на записываемый диск, причем RockRidge будет содержать символы в 8 битном представлении, как и в файловой системе, а для указания кодировки символов файловой системы при преобразовании в Joliet UNICODE, программа mkisofs поставляемая в комплекте с cdrecord, начиная с версии cdrecord-1.8.1 содержит опцию -jcharset. Список доступных кодировок можно получить, запустив

mkisofs -jcharset help

В этом списке присутствуют cp866 и koi8-r но (пока?) отсутствует cp1251.

Если Ваша система использует кодировку koi8-r в качестве основной, что обычное дело под Linux, то команда создания образа диска может быть такой

mkisofs -r -J -jcharset=koi8-r <путь к каталогу с файлами> <путь к образу диска>

Если файлы для создания диска находятся не на разделе с ext2 файловой системой, то возможно потребуется указать опции codepage и iocharset перед монтированием файловой системы. Например при монтировании раздела с FAT/VFAT и выбранной кодировке koi8-r необходимо указать:

mount -o codepage=866,iocharset=koi8-r /dev/hdc1 /mnt/dos
при монтировании NTFS:
mount -o iocharset=koi8-r /dev/hdc2 /mnt/ntfs
Тогда будет осуществляться правильная трансляция имен файлов из файловой системы в желаемую кодировку.

При монтировании компакт-диска с Joliet расширением для правильной трансляции имен файлов из UNICODE необходимо также указывать с опцией iocharset желаемую кодировку для отображения.

mount -o iocharset=koi8-r /dev/cdrom /mnt/cdrom


Вперед Назад Содержание
VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...