Кодировка имен файлов
От: Аноним  
Дата: 10.02.09 12:45
Оценка:
В русском windows, какая кодировка имен файлов?

В google ничего что-то не нашел.

Спасибо.
Re: Кодировка имен файлов
От: SergH Россия  
Дата: 10.02.09 12:50
Оценка:
Здравствуйте, Аноним, Вы писали:

А>В русском windows, какая кодировка имен файлов?


А>В google ничего что-то не нашел.


От файловой системы зависит. В NTFS -- unicode. В fat -- вроде win1251
Делай что должно, и будь что будет
Re[2]: Кодировка имен файлов
От: Аноним  
Дата: 10.02.09 12:55
Оценка:
Здравствуйте, SergH, Вы писали:

SH>От файловой системы зависит. В NTFS -- unicode. В fat -- вроде win1251


В том-то и проблема, что не win1251 и не unicode.

Есть php файл, в котором генерируется список файлов. Вывод списка — в utf-8. iconv-ом отконвертировать не получается.
Re[2]: Кодировка имен файлов
От: ДимДимыч Украина http://klug.org.ua
Дата: 10.02.09 13:15
Оценка: +1
Здравствуйте, SergH, Вы писали:

SH>От файловой системы зависит. В NTFS -- unicode. В fat -- вроде win1251


В fat lfn в utf-16, afaik.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re[3]: Кодировка имен файлов
От: ДимДимыч Украина http://klug.org.ua
Дата: 10.02.09 13:16
Оценка:
Здравствуйте, Аноним, Вы писали:

А>В том-то и проблема, что не win1251 и не unicode.


cp866?
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re[3]: Кодировка имен файлов
От: SergH Россия  
Дата: 10.02.09 13:22
Оценка:
Здравствуйте, ДимДимыч, Вы писали:

ДД>В fat lfn в utf-16, afaik.


А что такое "lfn"?

А в fat32, видимо, koi8-r.

Монтирование разделов FAT32 с русскими именами файлов

Для монтирования разделов FAT32 я рекомендую прописать в /etc/fstab
строки такого вида:

/dev/hda1 /mnt/c vfat umask=000,codepage=866,iocharset=koi8-r 0


http://www.opennet.ru/base/rus/ubuntu_rus.txt.html
Делай что должно, и будь что будет
Re[4]: Кодировка имен файлов
От: ДимДимыч Украина http://klug.org.ua
Дата: 10.02.09 14:17
Оценка:
Здравствуйте, SergH, Вы писали:

ДД>>В fat lfn в utf-16, afaik.


SH>А что такое "lfn"?


Long File Names. В короткое имя формата 8.3 в элементе каталога хранится в cp866, а длинное — в дополнительных элементах каталога, и насколько помню в utf-16.

SH>А в fat32, видимо, koi8-r.


SH>

/dev/hda1 /mnt/c vfat umask=000,codepage=866,iocharset=koi8-r 0


iocharset вообще указывает кодировку, в которой ядро должно отдавать имена системе.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re[5]: Кодировка имен файлов
От: SergH Россия  
Дата: 10.02.09 14:33
Оценка:
Здравствуйте, ДимДимыч, Вы писали:

ДД>iocharset вообще указывает кодировку, в которой ядро должно отдавать имена системе.


опять я облажался, ну что такое

Но если бы там была честная utf-16, её не надо было бы указывать, т.к. она бы правильно определялась и конвертировалась, разве нет? Отсюда я делаю вывод, что там однобайтовая кодировка.
Делай что должно, и будь что будет
Re[6]: Кодировка имен файлов
От: Аноним  
Дата: 10.02.09 14:43
Оценка:
Здравствуйте, SergH, Вы писали:


SH>Но если бы там была честная utf-16, её не надо было бы указывать, т.к. она бы правильно определялась и конвертировалась, разве нет? Отсюда я делаю вывод, что там однобайтовая кодировка.


iconv("windows-1251", "utf-8",$file_name)

Все-таки только так. Кстати, NTFS.

Проверил в VirtualBox.
Re[7]: Кодировка имен файлов
От: Аноним  
Дата: 10.02.09 14:50
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Проверил в VirtualBox.


Windows русский.
Re[6]: Кодировка имен файлов
От: ДимДимыч Украина http://klug.org.ua
Дата: 10.02.09 15:40
Оценка:
Здравствуйте, SergH, Вы писали:

SH>Но если бы там была честная utf-16, её не надо было бы указывать, т.к. она бы правильно определялась и конвертировалась, разве нет? Отсюда я делаю вывод, что там однобайтовая кодировка.


С другой стороны, помню, когда-то баловался непосредственной работой с длинными именами в FAT из-под DOS, так на диске было 2 байта на символ, причем для латиницы старший байт был нулевым, а для кириллицы был равен 4.
На домашнем компе есть один раздел с FAT32, если не забуду — проверю.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re[7]: Кодировка имен файлов
От: ДимДимыч Украина http://klug.org.ua
Дата: 10.02.09 16:03
Оценка:
Вот, сейчас сделал:
[dimich tmp]$ dd if=/dev/zero of=fat.img bs=1048576 count=4
4+0 records in
4+0 records out
4194304 bytes (4,2 MB) copied, 0,00844826 s, 496 MB/
[dimich tmp]$
[dimich tmp]$ mkfs.msdos ./fat.img 
mkfs.msdos 3.0.1 (23 Nov 2008)
[dimich tmp]$
[dimich tmp]$ sudo mount -o loop,iocharset=utf8,codepage=866 -t vfat ./fat.img /mnt/img/
[dimich tmp]$ sudo touch "/mnt/img/This is long filename.txt" 
[dimich tmp]$ sudo touch "/mnt/img/Длинное имя в кириллице.txt" 
[dimich tmp]$ sudo umount /mnt/img/
[dimich tmp]$
[dimich tmp]$ hexedit ./fat.img

...
000019F0   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
00001A00   42 66 00 69  00 6C 00 65  00 6E 00 0F  00 43 61 00  Bf.i.l.e.n...Ca.
00001A10   6D 00 65 00  2E 00 74 00  78 00 00 00  74 00 00 00  m.e...t.x...t...
00001A20   01 54 00 68  00 69 00 73  00 20 00 0F  00 43 69 00  .T.h.i.s. ...Ci.
00001A30   73 00 20 00  6C 00 6F 00  6E 00 00 00  67 00 20 00  s. .l.o.n...g. .
00001A40   54 48 49 53  49 53 7E 31  54 58 54 20  00 00 4D 8D  THISIS~1TXT ..M.
00001A50   4A 3A 4A 3A  00 00 4D 8D  4A 3A 00 00  00 00 00 00  J:J:..M.J:......
00001A60   43 74 00 00  00 FF FF FF  FF FF FF 0F  00 BF FF FF  Ct..............
00001A70   FF FF FF FF  FF FF FF FF  FF FF 00 00  FF FF FF FF  ................
00001A80   02 20 00 3A  04 38 04 40  04 38 04 0F  00 BF 3B 04  . .:.8.@.8....;.
00001A90   3B 04 38 04  46 04 35 04  2E 00 00 00  74 00 78 00  ;.8.F.5.....t.x.
00001AA0   01 14 04 3B  04 38 04 3D  04 3D 04 0F  00 BF 3E 04  ...;.8.=.=....>.
00001AB0   35 04 20 00  38 04 3C 04  4F 04 00 00  20 00 32 04  5. .8.<.O... .2.
00001AC0   84 8B 88 8D  8D 8E 7E 31  54 58 54 20  00 64 85 8D  ......~1TXT .d..
00001AD0   4A 3A 4A 3A  00 00 55 8D  4A 3A 00 00  00 00 00 00  J:J:..U.J:......
00001AE0   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
...
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re[4]: Кодировка имен файлов
От: DenisCh Россия  
Дата: 10.02.09 19:06
Оценка:
Здравствуйте, SergH, Вы писали:

SH>А в fat32, видимо, koi8-r.


А почему не EBCDIC?
... << RSDN@Home 1.2.0 alpha rev. 772>>
FAT File System Specification
От: Alexander G Украина  
Дата: 10.02.09 20:07
Оценка:
#Имя: FAQ.FAT.File.System.Specification
Здравствуйте, ДимДимыч, Вы писали:

ДД>На домашнем компе есть один раздел с FAT32, если не забуду — проверю.


Зачем гдадть, проверять — есть же дока
http://www.microsoft.com/whdc/system/platform/firmware/fatgen.mspx
Русский военный корабль идёт ко дну!
Re[8]: Кодировка имен файлов
От: ДимДимыч Украина http://klug.org.ua
Дата: 10.02.09 21:32
Оценка:
Здравствуйте, Alexander G, Вы писали:

AG>Зачем гдадть, проверять — есть же дока


Мда. Точно
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.