From bfcd5ef6eb17713183d62aeaf99d25bcf4886532 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 22 Feb 2026 16:41:33 +0000 Subject: [PATCH] Fix #1453: Register CodePagesEncodingProvider on .NET 6+ for code-page encodings On .NET 6+ (net8.0 target), code-page encodings such as windows-1250 are not available by default -- Encoding.GetEncoding(1250) throws. Add a conditional (NET6_0_OR_GREATER) registration of CodePagesEncodingProvider.Instance in asyncRead so that CsvProvider (and other providers) can read files with non-UTF encodings on modern .NET without requiring users to call RegisterProvider manually. netstandard2.0 is unaffected: CodePagesEncodingProvider requires the System.Text.Encoding.CodePages package there, so the #if guard skips registration on that target. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- src/FSharp.Data.Runtime.Utilities/IO.fs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/FSharp.Data.Runtime.Utilities/IO.fs b/src/FSharp.Data.Runtime.Utilities/IO.fs index 5e9097dc3..1ccb1bafa 100644 --- a/src/FSharp.Data.Runtime.Utilities/IO.fs +++ b/src/FSharp.Data.Runtime.Utilities/IO.fs @@ -250,6 +250,11 @@ let internal asyncRead (uriResolver: UriResolver) formatName encodingStr (uri: U if encodingStr = "" then Encoding.UTF8 else +#if NET6_0_OR_GREATER + // Register CodePagesEncodingProvider so that code-page encodings + // (e.g. windows-1250 / cp1250) are available on .NET 6+. + Encoding.RegisterProvider(CodePagesEncodingProvider.Instance) +#endif HttpEncodings.getEncoding encodingStr return new StreamReader(file, encoding) :> TextReader