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

Кодировка имени файла переключается на 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

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

Правка 1: Я могу воссоздать нечто подобное, подключившись по SSH к 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как параметром).

решение1

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

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

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

Связанный контент