У нас есть разные установки 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