141 votes

.NET Core ne connaît pas Windows 1252, comment y remédier?

Ce programme fonctionne très bien lorsqu'il est compilé pour .NET 4, mais fonctionne lorsqu'il est compilé pour .NET Core. Je comprends l’erreur concernant le codage non pris en charge, mais pas la solution.

 Public Class Program
    Public Shared Function Main(ByVal args As String()) As Integer
        System.Text.Encoding.GetEncoding(1252)
    End Function
End Class
 

261voto

svick Points 81772

Pour ce faire, vous devez vous inscrire à l' CodePagesEncodingProvider de la System.Text.Encoding.CodePages package.

Pour ce faire, installer le Système.Texte.L'encodage.Les codes de package:

dotnet add package System.Text.Encoding.CodePages

Puis (après, implicitement ou explicitement, l'exécution dotnet restore) vous pouvez appeler:

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
var enc1252 = Encoding.GetEncoding(1252);

Alternativement, si vous n'avez besoin que d'une page de code, vous pouvez l'obtenir directement, sans inscription:

var enc1252 = CodePagesEncodingProvider.Instance.GetEncoding(1252);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X