unicode в ext2/ext3

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Amouse
Сообщения: 59

unicode в ext2/ext3

Сообщение Amouse »

проясните, пожалуйста, такой момент —
в linux можно создавать файлы с юникодными именами.
Но как они могут храниться в ext2/ext3?
Структура этих файловых систем - на один символ — один байт.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: unicode в ext2/ext3

Сообщение serzh-z »

В UTF-8.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: unicode в ext2/ext3

Сообщение sash-kan »

(Amouse @ Oct 9 2006, в 14:26) писал(а):Структура этих файловых систем - на один символ — один байт.
при чем здесь структура, причем здесь символ, причем здесь байт?
имя файла (с точки зрения файловой системы) — это произвольный набор байтов.


(Amouse @ Oct 9 2006, в 14:26) писал(а):в linux можно создавать файлы с юникодными именами.
с именами, содержащими (почти) все что угодно.
то, что с такими (произвольными) именами будет не очень удобно работать — вопрос отдельный (:
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Amouse
Сообщения: 59

Re: unicode в ext2/ext3

Сообщение Amouse »

sash-kan писал(а):
09.10.2006 20:01
(Amouse @ Oct 9 2006, в 14:26) писал(а):Структура этих файловых систем - на один символ — один байт.
при чем здесь структура, причем здесь символ, причем здесь байт?
имя файла (с точки зрения файловой системы) — это произвольный набор байтов.



В ext2 именно так, но скажем в ntfs на символ отведено 2 байта.

А по поводу хранения в utf-8, а если я поставил кодировку cp-1251, скажем, создам файл, в какой кодировке он будет хранится на диске?
Спасибо сказали:
Аватара пользователя
aLexx programmer
Сообщения: 985
Статус: Турук-Макто
ОС: Gentoo -> Ubuntu

Re: unicode в ext2/ext3

Сообщение aLexx programmer »

(Amouse @ Oct 9 2006, в 20:31) писал(а):А по поводу хранения в utf-8, а если я поставил кодировку cp-1251, скажем, создам файл, в какой кодировке он будет хранится на диске?

В той, в которой был создан.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: unicode в ext2/ext3

Сообщение sash-kan »

(Amouse @ Oct 9 2006, в 19:31) писал(а):в ntfs на символ отведено 2 байта
а что такое ntfs? :D
шучу, знаю, конечно. но не до такой степени, чтобы судить о том, что и как она хранит на диске.
(Amouse @ Oct 9 2006, в 19:31) писал(а):А по поводу хранения в utf-8, а если я поставил кодировку cp-1251, скажем, создам файл, в какой кодировке он будет хранится на диске?
господи, да причем тут "хранение в", "хранение на"! храняться байты! и если процесс был запущен с локалью ru_RU.CP1251 и этот процесс создал файл с именем "щ", то это имя так и будет записано в виде байта 0xf9.
а если процесс был запущен с локалью ru_RU.UTF-8, то имя будет записано в виде двух байт 0xd1 0x89.

как эти байты интерпретировать — файловой системе до лампочки. она не занимается интерпретацией. она просто хранит. а интерпретировать их потом будет процесс, читающий эти байты.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Amouse
Сообщения: 59

Re: unicode в ext2/ext3

Сообщение Amouse »

sash-kan писал(а):
09.10.2006 20:51
как эти байты интерпретировать — файловой системе до лампочки. она не занимается интерпретацией. она просто хранит. а интерпретировать их потом будет процесс, читающий эти байты.


но тогда говорить о том что хранится в utf-8 нельзя?
набили имя при кодировке 1251, в ней он и хранится, т.е "читабельное/правильное" имя мы увидим только под этой кодировкой, так?
Спасибо сказали:
Лис
Сообщения: 1639
ОС: Zenwalk

Re: unicode в ext2/ext3

Сообщение Лис »

но тогда говорить о том что хранится в utf-8 нельзя?
набили имя при кодировке 1251, в ней он и хранится, т.е "читабельное/правильное" имя мы увидим только под этой кодировкой, так?

Да. Для нативных линуксовых ФС произвольно кодировка не устанавливается. Она соответствует кодировке текущей локали. Если вы смените локаль, то ФС как была, так и останется, но названия, содержащие не ASCII символы, будут отображаться некорректно. Причем, это не зависит от того, с какой кодировки на какую вы меняете локаль.
Спасибо сказали:
Sleeping Daemon
Сообщения: 1450

Re: unicode в ext2/ext3

Сообщение Sleeping Daemon »

Лис писал(а):
10.10.2006 13:03
но тогда говорить о том что хранится в utf-8 нельзя?
набили имя при кодировке 1251, в ней он и хранится, т.е "читабельное/правильное" имя мы увидим только под этой кодировкой, так?

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

Отсюда сухой остаток такой: Называйте файлы только с латинским набором букв.
И не будите заморачиваться насчёт кодировок.
Спасибо сказали:
Лис
Сообщения: 1639
ОС: Zenwalk

Re: unicode в ext2/ext3

Сообщение Лис »

Отсюда сухой остаток такой: Называйте файлы только с латинским набором букв.
И не будите заморачиваться насчёт кодировок.

Вот еще. Если свои файлы, то да. А если это какой-нибудь фильм с русским названием или русская песня, как прикажете называть? Vasya_Ryazan'_Perestroyka? Нет уж, увольте. Проще использовать одну локаль во всех дистрибутивах.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: unicode в ext2/ext3

Сообщение sash-kan »

(Лис @ Oct 10 2006, в 13:23) писал(а):Проще использовать одну локаль во всех дистрибутивах.
добавлю — во всех дистрибутивах всех операционных систем.
и даже есть реальный кандидат на эту роль — utf-8.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
Skull
Модератор
Сообщения: 2089
ОС: ALT Linux

Re: unicode в ext2/ext3

Сообщение Skull »

Sleeping Daemon писал(а):
10.10.2006 13:36
Отсюда сухой остаток такой: Называйте файлы только с латинским набором букв.
И не будите заморачиваться насчёт кодировок.
Зачем себя так ограничивать? Поставь везде Unicode и наслаждайся. :)
Skull
Спасибо сказали: