LINUX.ORG.RU
решено ФорумAdmin

Перекодировка имени файлов из cp1252 в koi8-r

 , ,


2

1

Доброго времени суток.

Пред история событий: была freebsd с шарой для доков. Винт глюкнул. «Специалист» подрубил жесткий к винде и утилитой R.saver перекинул файлы шары c раздела UFS на раздел NTFS, кодировка естественно теперь вот такая: ÄÌÑ üÍÍÙ.jpg

Декодер а. лебедева (http://www.artlebedev.ru/tools/decoder/) сказал что ÄÌÑ üÍÍÙ = для Эммы и указал кодировку CP1252 → KOI8-R, «что ж...» подумал я «ща запилю!»

Подрубил «восстановленную» шару в Centos 6.4 набрал команду:

[root@centos-test-gw 111]# convmv -rf cp1252 -t koi8-r *
Starting a dry run without changes...
koi8-r doesn't cover all needed characters for: "./ÄÌÑ üÍÍÙ.jpg" To prevent damage to your files, we won't continue.
First fix this or correct options!

облом.... посдкажите как теперь быть?

Ответ на: комментарий от fordiego

может Вы хотели сказать что надо от обратно? сначала cp1252 в utf8 а потом что что получилось в koi8-r ????

[root@centos-test-gw 111]# convmv -rf cp1252 -t utf-8 * --notest
Skipping, already UTF-8: ./ÄÌÑ üÍÍÙ.jpg
Ready!

как бы странно...., ладно идем дальше

[root@centos-test-gw 111]# convmv -rf utf-8 -t koi8-r * --notest
koi8-r doesn't cover all needed characters for: "./ÄÌÑ üÍÍÙ.jpg"
To prevent damage to your files, we won't continue.
First fix this or correct options!
теже грабли...

fordiego
() автор топика
Ответ на: комментарий от fordiego

у тебя консоль в utf8 - имена файлов значит закодированы в utf8. так?

сначала надо перекодировать эти utf8 строки в cp1252.

что-то вроде «convmv -rf utf8 -t cp1252 *»

после этого, имена файлов будут нечитаемы у тебя в консоли, но закодированы они будут в 1-байтовую кодировку.

следующий шаг, перекодировка из правильной (koi8-r) 1-байтной кодировки обратно в utf8.

convmv -rf koi8-r -t utf8 *

пробуй сначала на 1 тестовом файле. успехов.

waker ★★★★★
()

cp1252 в koi8-r

freebsd

Ох уж эти виндузятники.

anonymous
()
Ответ на: комментарий от waker

получилось но не совсем

Если проделать действия по смене кодировки на linux разделе, то все отлично, если на смонтированной сетевой шаре то консоль пишет при выполнении:

[root@centos-test-gw äÌÑ ÒÁÂÏÔÙ]# convmv -rf utf-8 -t cp1252 * --notest
mv "./äïçï÷ïò ÷ïúíåúäîïçï ïëáúáîéñ õóìõç_ÏÂÒÁÚÅÃ.doc"   "./▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒ ▒▒▒▒▒_▒▒▒▒▒▒▒.doc"
mv "./~$ÉËÅÒÙ ÎÁ ÐÉÓØÍÁ.docx"   "./~$▒▒▒▒▒ ▒▒ ▒▒▒▒▒▒.docx"
mv "./ëÏÐÉÑ äïçï÷ïò ÷ïúíåúäîïçï ïëáúáîéñ õóìõç  ÏÂÒÁÚÅÃ.doc"    "./▒▒▒▒▒ ▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒ ▒▒▒▒▒  ▒▒▒▒▒▒▒.doc"
mv "./ÎÁËÌÅÊËÉ ÒÁÚÄÏÌØÅ.doc"    "./▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒.doc"
mv "./ÓÐÉÓÏË ÐÒÉÇÌÁÛÅÎÎÙÈ ÎÁ åó. ÏÒÉÇÉÎÁÌ ÏÔ ó×ÅÔÌÁÎÙ.xlsx"     "./▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒ ▒▒. ▒▒▒▒▒▒▒▒ ▒▒ ▒▒▒▒▒▒▒▒.xlsx"
mv "./óÕÂÌÉÃÅÎÚÉÏÎÎÙÊ ÄÏÇÏ×ÏÒ.docx"     "./▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒.docx"
mv "./óÔÉËÅÒÙ ÎÁ ÐÉÓØÍÁ.docx"   "./▒▒▒▒▒▒▒ ▒▒ ▒▒▒▒▒▒.docx"
Ready!
[root@centos-test-gw äÌÑ ÒÁÂÏÔÙ]#
то есть все вроде отлично, однако
[root@centos-test-gw äÌÑ ÒÁÂÏÔÙ]# ls
äïçï÷ïò ÷ïúíåúäîïçï ïëáúáîéñ õóìõç_ÏÂÒÁÚÅÃ.doc  ëÏÐÉÑ äïçï÷ïò ÷ïúíåúäîïçï ïëáúáîéñ õóìõç  ÏÂÒÁÚÅÃ.doc  ÓÐÉÓÏË ÐÒÉÇÌÁÛÅÎÎÙÈ ÎÁ åó. ÏÒÉÇÉÎÁÌ ÏÔ ó×ÅÔÌÁÎÙ.xlsx  óÔÉËÅÒÙ ÎÁ ÐÉÓØÍÁ.docx
~$ÉËÅÒÙ ÎÁ ÐÉÓØÍÁ.docx                          ÎÁËÌÅÊËÉ ÒÁÚÄÏÌØÅ.doc                                  óÕÂÌÉÃÅÎÚÉÏÎÎÙÊ ÄÏÇÏ×ÏÒ.docx
[root@centos-test-gw äÌÑ ÒÁÂÏÔÙ]#
не че не перекодировалось ((( и соответственно
[root@centos-test-gw äÌÑ ÒÁÂÏÔÙ]# convmv --replace -rf koi8-r -t utf-8 * --notest
Skipping, already UTF-8: ./äïçï÷ïò ÷ïúíåúäîïçï ïëáúáîéñ õóìõç_ÏÂÒÁÚÅÃ.doc
Skipping, already UTF-8: ./~$ÉËÅÒÙ ÎÁ ÐÉÓØÍÁ.docx
Skipping, already UTF-8: ./ëÏÐÉÑ äïçï÷ïò ÷ïúíåúäîïçï ïëáúáîéñ õóìõç  ÏÂÒÁÚÅÃ.doc
Skipping, already UTF-8: ./ÎÁËÌÅÊËÉ ÒÁÚÄÏÌØÅ.doc
Skipping, already UTF-8: ./ÓÐÉÓÏË ÐÒÉÇÌÁÛÅÎÎÙÈ ÎÁ åó. ÏÒÉÇÉÎÁÌ ÏÔ ó×ÅÔÌÁÎÙ.xlsx
Skipping, already UTF-8: ./óÕÂÌÉÃÅÎÚÉÏÎÎÙÊ ÄÏÇÏ×ÏÒ.docx
Skipping, already UTF-8: ./óÔÉËÅÒÙ ÎÁ ÐÉÓØÍÁ.docx
Ready!
[root@centos-test-gw äÌÑ ÒÁÂÏÔÙ]#

беда печаль, прав что ли на запись нет? проверил вроде права все есть... может convmv не работает на ntfs разделах или на монтированных шарах?

fordiego
() автор топика
Ответ на: комментарий от fordiego

вот так шара смонтирована, кусок fstab:

//192.168.10.85/FileServer/123/ /mnt/temp cifs    iocharset=utf8,username=******,password=******,rw,auto   0       0

fordiego
() автор топика
Ответ на: комментарий от waker

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

fordiego
() автор топика
Ответ на: комментарий от fordiego
#!/bin/bash

touch "äïçï÷ïò ÷ïúíåúäîïçï ïëáúáîéñ õóìõç_ÏÂÒÁÚÅÃ.doc"

ls -1 | while read oldname; do
  newname="$(echo "$oldname" |\
             iconv -f utf-8  -t cp1252 |\
             iconv -f koi8-r -t utf-8)"
  mv "$oldname" "$newname"
done
anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.