Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Létrehozható ZipArchive egy Encoding paraméterrel, amely a ZIP-archívum bejegyzéseinek nevének és megjegyzéseinek dekódolására szolgál. A .NET 7 bevezetett egy regressziót, ahol ezt a kódolást alapértelmezés szerint használták, a rendszer alapértelmezett kódlapjára (UTF8 a .NET Core-ban) való visszalépéssel, ha nem adott meg kódolást. Ez a regresszió a .NET 9-ben van javítva: ha a bejegyzés általános célú bitjelzői azt jelzik, hogy UTF8-at kell használni, akkor az tiszteletben van tartva. Ha az UTF8 bitjelző nincs beállítva, a rendszer a felhasználó által megadott kódolást használja (ha nincs megadva, a rendszer alapértelmezett kódlapjára való visszalépéssel).)
Előző viselkedés
A .NET 7 és a .NET 8 rendszerben, ha egy ZipArchive felhasználó által megadott entryNameEncoding paraméterrel példányosított egy példányt, ez a kódolás mindig ezt a kódolást használta a ZIP-archívum bejegyzéseinek neveinek és megjegyzéseinek dekódolásakor.
entryNameEncoding akkor is használták, ha a bejegyzés bitkészlete azt jelzi, hogy a neve és a megjegyzése UTF8-ban van kódolva.
Új viselkedés
A .NET 9-től kezdve, amikor egy ZIP-archívum bejegyzésének neve és megjegyzése dekódolva van, a rendszer tiszteletben tartja az UTF8 bitjelzőjét. A felhasználó által megadott entryNameEncoding paraméter csak a bejegyzés nevének és megjegyzésének dekódolására szolgál, ha ez a bitjelző nincs megadva.
Bevezetett verzió
.NET 9 RC 1
A kompatibilitástörő változás típusa
Ez a változás viselkedésbeli változás.
A változás oka
Ez a módosítás kijavít egy regressziót a .NET 7-ben és a .NET 8-ban. ZipArchive Visszatér a ZIP-fájlformátum specifikációjának, a 4.4.4.
Javasolt művelet
Ha a kód átad egy kódolást a ZipArchive konstruktornak, vegye figyelembe, hogy ezt a kódolást nem minden esetben tartják be. Csak akkor használható, ha a bejegyzés UTF8-bitje nincs beállítva.
Ha nem UTF8 formátumú (de UTF8 bites jelölőkészlettel rendelkező) névvel rendelkező ZIP-bejegyzéseket szeretne ZipArchive elemezni, ezt a továbbiakban nem fogja tudni elvégezni. Az előző viselkedés hiba volt.
Érintett API-k
- 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)