anonymous
написал 28 сентября 2005 года в 09:34 (815 просмотров)
Ведет себя
неопределенно; открыл 1814 темы в форуме, оставил 5575 комментариев на сайте.
Стоял у меня сначала Mandrake 10.1 и был у меня отдельный ext3 раздел для /home Насколько я понял все имена файлов хранились в koi8-r
Теперь я поставил FedoraCore4 и хочу также использовать этот раздел для /home. Но оказалось, что русские имена файлов он отображать не хочет(что-то вроде encoding error), потому что ему в utf8 подавай. Так вот, вопрос такой: как сделать, чтобы этот имена в этом разделе воспринимались в кодировке koi8-r? Или как сконвертировать все файлы из /home в правильную кодировку?
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
Забыл еще добавить, что параметры монтирования типа codepage и iocharset применяются для монтировании только fat, и вроде для ext3 неприменимы. Читал man mount и ничего по заданию кодировки в ext3 (он же ext2) не нашел
Такая же трабла и рейзером 3.6
т.е. с мандривой(koi8-r) и с live-cd ubuntu(utf8)
у меня где-то скрипт перекодировки валялся…
ага, точно:
вроде работал. Но вы проверьте на всякий случай, закомментируйте mv и проверьте ;). А то если половина файлов перекодируется, а другая — нет (или ещё лучше не в ту, или не из той кодовой таблицы кодируется), тогда точно ручками придётся всё это делать.
А с другой стороны… для gtk можно переменную окружения объявить, как биш её… что то вроде G_FILENAME_ENCODING. консоль тоже можно в koi8-r рисовать. в общем либо мой скрипт (который так до конца и не был проверен, все баги какие вылезли я пофиксил, но в конце концов всё было перекодировано, а уверенности что он работает всегда не появилось) — либо настройка локали :).
Сработало. Вот только я бы еще сделал защиту от повторного переименования, когда имя уже в кодировке utf-8. Для этого нужно проверять, сконвертированная строка имеет ту же длину что и оригинал. Что-то вроде:
if [[ "$decoded" != "$1" ]] && (strlen($decoded) == strlen($1))…
Правда я не знаю, как это в bash правильно написать.