vb.net - for - windows 1251 is not a supported encoding name




.NET Core не знает о Windows 1252, как это исправить? (2)

Для этого необходимо register экземпляр CodePagesEncodingProvider из пакета System.Text.Encoding.CodePages .

Для этого установите пакет System.Text.Encoding.CodePages :

dotnet add package System.Text.Encoding.CodePages

Затем (после неявного или явного запуска dotnet restore ) вы можете вызвать:

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

Кроме того, если вам нужна только одна кодовая страница, вы можете получить ее напрямую, без регистрации:

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

Эта программа прекрасно работает при компиляции для .NET 4, но работает при компиляции для .NET Core. Я понимаю ошибку о кодировке не поддерживается, но не как исправить.

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

Пожалуйста, напишите:

<ItemGroup>
    <PackageReference Include="System.Text.Encoding.CodePages" Version="4.3.0" />
</ItemGroup>

в csproj.

В консоли пакета напишите 'dotnet restore', восстановите сборки.

и вот этот код для образца:

public class MyClass
{
    static MyClass()
    {
        Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
    }
}






windows-1252