проясните, пожалуйста, такой момент —
в linux можно создавать файлы с юникодными именами.
Но как они могут храниться в ext2/ext3?
Структура этих файловых систем - на один символ — один байт.
unicode в ext2/ext3
Модератор: Bizdelnick
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: unicode в ext2/ext3
В UTF-8.
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: unicode в ext2/ext3
при чем здесь структура, причем здесь символ, причем здесь байт?(Amouse @ Oct 9 2006, в 14:26) писал(а):Структура этих файловых систем - на один символ — один байт.
имя файла (с точки зрения файловой системы) — это произвольный набор байтов.
с именами, содержащими (почти) все что угодно.(Amouse @ Oct 9 2006, в 14:26) писал(а):в linux можно создавать файлы с юникодными именами.
то, что с такими (произвольными) именами будет не очень удобно работать — вопрос отдельный (:
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
Amouse
- Сообщения: 59
Re: unicode в ext2/ext3
В ext2 именно так, но скажем в ntfs на символ отведено 2 байта.
А по поводу хранения в utf-8, а если я поставил кодировку cp-1251, скажем, создам файл, в какой кодировке он будет хранится на диске?
-
aLexx programmer
- Сообщения: 985
- Статус: Турук-Макто
- ОС: Gentoo -> Ubuntu
Re: unicode в ext2/ext3
(Amouse @ Oct 9 2006, в 20:31) писал(а):А по поводу хранения в utf-8, а если я поставил кодировку cp-1251, скажем, создам файл, в какой кодировке он будет хранится на диске?
В той, в которой был создан.
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: unicode в ext2/ext3
а что такое ntfs?(Amouse @ Oct 9 2006, в 19:31) писал(а):в ntfs на символ отведено 2 байта
шучу, знаю, конечно. но не до такой степени, чтобы судить о том, что и как она хранит на диске.
господи, да причем тут "хранение в", "хранение на"! храняться байты! и если процесс был запущен с локалью ru_RU.CP1251 и этот процесс создал файл с именем "щ", то это имя так и будет записано в виде байта 0xf9.(Amouse @ Oct 9 2006, в 19:31) писал(а):А по поводу хранения в utf-8, а если я поставил кодировку cp-1251, скажем, создам файл, в какой кодировке он будет хранится на диске?
а если процесс был запущен с локалью ru_RU.UTF-8, то имя будет записано в виде двух байт 0xd1 0x89.
как эти байты интерпретировать — файловой системе до лампочки. она не занимается интерпретацией. она просто хранит. а интерпретировать их потом будет процесс, читающий эти байты.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
Amouse
- Сообщения: 59
Re: unicode в ext2/ext3
но тогда говорить о том что хранится в utf-8 нельзя?
набили имя при кодировке 1251, в ней он и хранится, т.е "читабельное/правильное" имя мы увидим только под этой кодировкой, так?
-
Лис
- Сообщения: 1639
- ОС: Zenwalk
Re: unicode в ext2/ext3
но тогда говорить о том что хранится в utf-8 нельзя?
набили имя при кодировке 1251, в ней он и хранится, т.е "читабельное/правильное" имя мы увидим только под этой кодировкой, так?
Да. Для нативных линуксовых ФС произвольно кодировка не устанавливается. Она соответствует кодировке текущей локали. Если вы смените локаль, то ФС как была, так и останется, но названия, содержащие не ASCII символы, будут отображаться некорректно. Причем, это не зависит от того, с какой кодировки на какую вы меняете локаль.
-
Sleeping Daemon
- Сообщения: 1450
Re: unicode в ext2/ext3
Лис писал(а): ↑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
добавлю — во всех дистрибутивах всех операционных систем.(Лис @ Oct 10 2006, в 13:23) писал(а):Проще использовать одну локаль во всех дистрибутивах.
и даже есть реальный кандидат на эту роль — utf-8.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
Skull
- Модератор
- Сообщения: 2089
- ОС: ALT Linux
Re: unicode в ext2/ext3
Зачем себя так ограничивать? Поставь везде Unicode и наслаждайся.Sleeping Daemon писал(а): ↑10.10.2006 13:36Отсюда сухой остаток такой: Называйте файлы только с латинским набором букв.
И не будите заморачиваться насчёт кодировок.
Skull