Eu tenho problemas com diferentes conjuntos de caracteres no Windows e Linux (Centos).
Eu tenho arquivos com caracteres especiais em seus nomes de arquivos de vários idiomas diferentes. O arquivo zip é gerado no Win7 e carregado em um servidor Linux. No Windows, todos os caracteres foram exibidos como esperado. Mas depois de fazer o upload e extração com o phps ' ZipArchive()
ou o Linux unzip
, alguns caracteres especiais foram exibidos com caracteres estranhos e errados.
Eu sei que esse é um problema conhecido na interação entre o Windows e o Linux, mas não consigo resolver meu problema. Eu tentei descompactar o meu arquivo zip com diferentes conjuntos de caracteres, mas nada funcionou para mim. Em português o personagem õ faz muitos problemas, mas está tudo bem.
aplicações.txt
é após descompactar aplicaçΣes.txt
Tanto quanto eu entendi direito, o windows usa o código ASCII charset IBM860, mas às vezes eu leio windows-1257 e eu não sei qual charset é usado, quando o arquivo zip é feito com o WinRar sob Win7. Existe uma maneira de verificar isso ou dizer ao WinRar para usar o UTF-8?
Quando o arquivo zip é carregado em um sistema operacional Linux e descompactado por ZipArchive()
(php) ou no Linux bash
com unzip
, os nomes dos arquivos estão errados. Acho que é porque o Linux usou o UTF-8.
Sob comando linux eu tentei:
unzip -O windows-1257 uploaded.zip -d zipout/
Sob comando linux eu tentei:
unzip -O IBM860 uploaded.zip -d zipout/
Sob comando linux eu tentei:
unzip -O IBM437 uploaded.zip -d zipout/
Sob comando linux eu tentei:
unzip -O UTF-8 uploaded.zip -d zipout/
Sob comando linux eu tentei:
unzip -O UTF-16 uploaded.zip -d zipout/