Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
En ZipArchive kan skapas med en Encoding parameter som används för att avkoda namn och kommentarer för poster i ZIP-arkivet. .NET 7 introducerade en regression där den här kodningen användes som standard, med en återställning till systemets standardkodsida (UTF8 i .NET Core) om ingen kodning angavs. Den här regressionen korrigeras i .NET 9: om postens allmänna bitflaggor anger att UTF8 ska användas, så respekteras detta. Om UTF8-bitarsflaggan inte har angetts används kodningen som tillhandahålls av användaren (med den befintliga återställningen till systemets standardkodsida om ingen anges.)
Tidigare beteende
Om en ZipArchive instansieras med en användardefinierad entryNameEncoding parameter i .NET 7 och .NET 8 användes alltid den här kodningen när namn och kommentarer för poster i ZIP-arkivet avkodades. 
              entryNameEncoding användes även om posten hade bituppsättningen för att ange att dess namn och kommentar kodades i UTF8.
Nytt beteende
Från och med .NET 9, när en ZIP-arkivposts namn och kommentar avkodas, respekteras dess UTF8-bitarsflagga. Parametern som tillhandahålls av entryNameEncoding användaren används bara för att avkoda postens namn och kommentera om den här bitflaggan inte har angetts.
Version introducerad
.NET 9 RC 1
Typ av icke-bakåtkompatibel ändring
Den här ändringen är en beteendeförändring.
Orsak till ändringen
Den här ändringen korrigerar en regression i .NET 7 och .NET 8. Det återgår ZipArchive också till kompatibilitet med ZIP-filformatspecifikationen, avsnitten 4.4.4 och bilaga D.
Rekommenderad åtgärd
Om koden skickar en kodning till ZipArchive-konstruktorn bör du vara medveten om att den här kodningen inte respekteras i alla situationer. Den används bara om postens UTF8-bit inte har angetts.
Om du använder ZipArchive för att parsa ZIP-poster med namn som är kodade i icke-UTF8-format (men som har UTF8-bitarsflaggan inställd) kommer du inte längre att kunna göra det. Det tidigare beteendet var en bugg.
Berörda API:er
- ZipArchive(Stream, ZipArchiveMode, Boolean, Encoding)
 - System.IO.Compression.ZipFile.ExtractToDirectory(Stream, String, Encoding, Boolean)
 - System.IO.Compression.ZipFile.ExtractToDirectory(String, String, Encoding, Boolean)
 - System.IO.Compression.ZipFile.ExtractToDirectory(String, String, Encoding)
 - System.IO.Compression.ZipFile.ExtractToDirectory(Stream, String, Encoding)
 - System.IO.Compression.ZipFile.Open(String, ZipArchiveMode, Encoding)