Codificação apropriada para nomes de arquivos em arquivos zip criados no Windows e descompactados no linux

2

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/
    
por Ole 10.05.2018 / 09:32

1 resposta

0

Se o idioma da versão do Windows 7 usada para compactar arquivos for o português do Brasil, a codificação provavelmente será IBM-850 ou Windows-1252. Experimente estes.

Eu também tenho esse problema. Mas também acontece ao transferir entre diferentes idiomas do Windows. Entre as versões em inglês e português do Brasil, por exemplo, a versão em inglês usa o IBM-437 e a versão pt-BR usa o IBM-850.

Se você usar o WinZip para fechar, esse problema não acontece. Eu não recomendo usar o Windows embutido para zipar e / ou extrair, pois isso também causa o problema de codificação em nomes de arquivos.

    
por 03.07.2018 / 21:55