У меня проблемы с разными кодировками в Windows и Linux (Centos).
У меня есть файлы со специальными символами в именах файлов из разных языков. Zip-архив создается под Win7 и загружается на сервер Linux. Под Windows все символы отображались нормально, как и ожидалось. Но после загрузки и распаковки с помощью phps ' ZipArchive()
или Linux unzip
, некоторые специальные символы отображались со странными неправильными символами.
Я знаю, что это известная проблема во взаимодействии между Windows и Linux, но я не могу решить свою проблему. Я пытался разархивировать мой zip-файл с разными кодировками, но у меня ничего не получалось. На португальском языке характерная черта характера создает много проблем, но все в порядке.
aplicações.txt
после разархивации aplicaçΣes.txt
Насколько я понял правильно, windows использует кодировку ASCII-кода IBM860, но иногда я читаю windows-1257 и не знаю, какая кодировка используется, когда zip-архив создается с WinRar под Win7. Есть ли способ проверить это или сказать WinRar использовать UTF-8?
Когда zip-архив загружается в Linux и распаковывается с помощью ZipArchive()
(php) или в Linux bash
с помощью unzip
, имена файлов неверны. Думаю, это потому, что Linux использовал UTF-8.
Под командой Linux я попытался:
unzip -O windows-1257 uploaded.zip -d zipout/
Под командой Linux я попытался:
unzip -O IBM860 uploaded.zip -d zipout/
Под командой Linux я попытался:
unzip -O IBM437 uploaded.zip -d zipout/
Под командой Linux я попытался:
unzip -O UTF-8 uploaded.zip -d zipout/
Под командой Linux я попытался:
unzip -O UTF-16 uploaded.zip -d zipout/