DOTNETZIP PROBLEMA COM Codificação
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.
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