Pergunta

Estou usando dotnetzip. Quando estou arquivando o arquivo que tem nome em inglês normalmente. Mas quando eu arquivei o arquivo com nomes russos no arquivo de resultados com nomes ruins de arquivo. Alguns peopleses disseram que a corda

ZipConstants.DefaultCodePage = 866;

Mas não é compilar. Eu também uso propriedades zip.useunicodeasnecessary e converter meus nomes de arquivos em UTF8 e UTF7.

Foi útil?

Solução

Para criar um arquivo zip unicode no Dotnetzip:

using (var zip = new ZipFile())
{
   zip.UseUnicodeAsNecessary= true;
   zip.AddFile(filename, "directory\\in\\archive");
   zip.Save("archive.zip");
}

Se você deseja uma página de código específica e específica, deve usar outra coisa:

using (var zip = new ZipFile())
{
   zip.ProvisionalAlternateEncoding = System.Text.Encoding.GetEncoding(866);
   zip.AddFile(filename, "directory\\in\\archive");
   zip.Save("archive.zip");
}

Verificar a documentação Para essas propriedades antes de usá -las!

Outras dicas

zip.AlternateEncodingUsage = ZipOption.Always;
zip.AlternateEncoding = Encoding.UTF8;

tente isso

zip.AddEntry("yourfile.txt", "yourtext", Encoding.GetEncoding("utf-8"));

Tipo de codificação: Informações do tipo de codificação

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top