Delen via


ZipArchiveEntry-namen en opmerkingen respecteren UTF8-vlag

Een ZipArchive kan worden gemaakt met een Encoding parameter, die wordt gebruikt om de namen en opmerkingen van vermeldingen in het ZIP-archief te decoderen. .NET 7 heeft een regressie geïntroduceerd waarbij deze codering standaard werd gebruikt, met een terugval op de standaardcodepagina van het systeem (UTF8 in .NET Core) als er geen codering is opgegeven. Deze regressie wordt gecorrigeerd in .NET 9: als de bitvlaggen voor algemeen gebruik aangeven dat UTF8 moet worden gebruikt, wordt dat gerespecteerd. Als de UTF8-bits vlag niet is ingesteld, wordt de door de gebruiker geleverde codering gebruikt (met de bestaande terugval naar de standaardcodepagina van het systeem als er geen code wordt opgegeven.)

Vorig gedrag

Als in .NET 7 en .NET 8 een ZipArchive exemplaar is gemaakt met een door de gebruiker opgegeven entryNameEncoding parameter, werd deze codering altijd gebruikt bij het decoderen van de namen en opmerkingen van vermeldingen in het ZIP-archief. entryNameEncoding werd gebruikt, zelfs als het item de bit had ingesteld om aan te geven dat de naam en opmerking zijn gecodeerd in UTF8.

Nieuw gedrag

Vanaf .NET 9 wordt de UTF8-bits vlag gerespecteerd wanneer de naam en opmerking van een ZIP-archiefvermelding worden gedecodeerd. De door de gebruiker opgegeven entryNameEncoding parameter wordt alleen gebruikt om de naam en opmerking van de vermelding te decoderen als deze bitvlag niet isset.

Versie geïntroduceerd

.NET 9 RC 1

Type wijziging die fouten veroorzaken

Deze wijziging is een gedragswijziging.

Reden voor wijziging

Deze wijziging corrigeert een regressie in .NET 7 en .NET 8. Het retourneert ZipArchive ook de naleving van de zip-bestandsindelingspecificatie, secties 4.4.4 en bijlage D.

Als uw code een codering doorgeeft aan de ZipArchive-constructor, moet u er rekening mee houden dat deze codering in alle situaties niet wordt gerespecteerd. Deze wordt alleen gebruikt als de UTF8-bits van de vermelding niet is ingesteld.

Als u ZipArchive ZIP-vermeldingen parseert met namen die zijn gecodeerd in niet-UTF8-indeling (maar waarvoor de UTF8-bits vlag is ingesteld), kunt u dit niet meer doen. Het vorige gedrag was een bug.

Betrokken API's