Delen via


Base64.DecodeFromUtf8-methoden negeren witruimte

De Convert.FromBase64String(String)methoden , Convert.FromBase64CharArray(Char[], Int32, Int32)en bijbehorende Try methoden voor System.Convert het negeren van de ASCII-witruimtetekens ' ', '\t', '\r' en '\n' en toestaan dat een willekeurige hoeveelheid van deze witruimte in de invoer staat. Wanneer de Base64.DecodeFromUtf8(ReadOnlySpan<Byte>, Span<Byte>, Int32, Int32, Boolean) en Base64.DecodeFromUtf8InPlace(Span<Byte>, Int32) methoden echter werden toegevoegd, negeerden ze deze witruimtetekens niet en decodeerden ze in plaats daarvan geen invoer die witruimte bevatte. Hierdoor is het gedrag van de op UTF16 gebaseerde API's anders dan die van de op UTF8 gebaseerde API's. Het betekende ook dat:

Met deze wijziging negeren de DecodeFromUtf8(ReadOnlySpan<Byte>, Span<Byte>, Int32, Int32, Boolean) en DecodeFromUtf8InPlace(Span<Byte>, Int32) methoden nu witruimte in de invoer.

Vorig gedrag

Base64.DecodeFromUtf8(ReadOnlySpan<Byte>, Span<Byte>, Int32, Int32, Boolean) en Base64.DecodeFromUtf8InPlace(Span<Byte>, Int32) kan geen invoer verwerken die witruimte bevatte en geretourneerd OperationStatus.InvalidData als er een witruimte is opgetreden.

Nieuw gedrag

Base64.DecodeFromUtf8(ReadOnlySpan<Byte>, Span<Byte>, Int32, Int32, Boolean) en Base64.DecodeFromUtf8InPlace(Span<Byte>, Int32) negeer nu witruimte (met name ' ', '\t', '\r' en '\n') in de invoer, die overeenkomt met het gedrag van Convert.FromBase64String(String).

Versie geïntroduceerd

.NET 8 Preview 5

Type wijziging die fouten veroorzaken

Deze wijziging is een gedragswijziging.

Reden voor wijziging

De wijziging is aangebracht, zodat:

Als het nieuwe gedrag problematisch is voor uw code, kunt u aanroepen IndexOfAny(" \t\r\n"u8) om de invoer voor de witruimte te doorzoeken die eerder een InvalidData resultaat zou hebben geactiveerd.

Betrokken API's