Назад | Перейти на главную страницу

Кодировка имени файла переключена на UTF-8 с помощью tar при распаковке в общий ресурс Windows

У нас есть разные установки Magento (интернет-магазин), которые позволяют свободно добавлять изображения в продукт. Когда изображение добавляется к продукту, файл получает определенное имя, которое иногда включает специальные символы (например, немецкие умляуты).

В одном случае, который я сейчас ищу, имена файлов закодированы в latin1. Я вижу это, делая ls в файл, а затем чтение файла через vim. Используя fileencoding=latin1, умляуты отображаются правильно.

Теперь эти установки Magento поддерживаются tar, 7zip и ccrypt (в этой последовательности). Распаковка в Linux дает те же имена файлов в той же кодировке.

Теперь у нас есть общий ресурс в системе Windows, на который мы хотели бы установить неармированную установку Magento. Однако при распаковке появляется ряд сообщений об ошибках, касающихся имен файлов умлаутов:

tar: var/magento_webs/customer/media/import/images/12063-sportsto\337d\344mpfer-hinten.jpg: Kann open nicht ausführen: Datei oder Verzeichnis nicht gefunden
tar: var/magento_webs/customer/media/import/images/15240-kunststoffkotfl\374gel-detail-vorne.jpg: Kann open nicht ausführen: Datei oder Verzeichnis nicht gefunden
tar: var/magento_webs/customer/media/import/images/14300-fl\374gel.jpg: Kann open nicht ausführen: Datei oder Verzeichnis nicht gefunden
tar: var/magento_webs/customer/media/import/images/15240-41kotfl\374gel-kunststoff-vorne.jpg: Kann open nicht ausführen: Datei oder Verzeichnis nicht gefunden
tar: var/magento_webs/customer/media/import/images/citr\366n.jpg: Kann open nicht ausführen: Datei oder Verzeichnis nicht gefunden
tar: var/magento_webs/customer/media/import/images/2cv6-ma\337e-1.jpg: Kann open nicht ausführen: Datei oder Verzeichnis nicht gefunden
tar: var/magento_webs/customer/media/import/images/2cv6-ma\337e.jpg: Kann open nicht ausführen: Datei oder Verzeichnis nicht gefunden
tar: var/magento_webs/customer/media/import/images/11076-vorschalld\344mpfer.jpg: Kann open nicht ausführen: Datei oder Verzeichnis nicht gefunden

(Это примерно переводится как Cannot execute open: File or directory not found)

Теперь, глядя на списки tar с именами файлов, я вижу, что tar пытается создать имена файлов в кодировке UTF-8 (\ 337 выглядит именно так). Однако точка монтирования стала доступной через (с etc/fstab):

//192.168.0.111/share   /mnt/share      cifs    username=myusername,noperm,sec=ntlm,codepage=cp850       0       0

Я не уверен, почему эти имена файлов нельзя записать в общую папку способом, сохраняющим кодировку умлаута. Мне не хватает другого варианта (не подходит ли для этого кодовая страница)?

Изменить 1: я могу воссоздать что-то похожее с помощью SSHing в окне Linux, установив Remote character set связи с ISO8859-15, переход в общий каталог и touchдобавление файла с умлаутом:

touch: kann â\244â nicht berÃŒhren: Datei oder Verzeichnis nicht gefunden

(Не могу коснуться X: файл или каталог не найдены)

Изменить 2: первая попытка решения

Я добавил iocharset=utf8 к параметрам монтирования, перемонтировал общий ресурс, но получил те же проблемы с теми же файлами. Как ни странно, используя mount (который обычно выводит все параметры, с которыми были смонтированы точки монтирования) не печатает iocharset вариант (ни с utf8 ни с cp850 как настройка).

Некоторое время назад (я полагаю, что между версией 2.0 или около того) mount.cifs потерял параметр «codepage =» и поместил все в параметр «iocharset =».

Вы должны быть в порядке с

//host/share /mnt/share cifs username=blah,noperm,sec=ntlm,iocharset=utf8 0 0