Здравствуйте, klen_, Вы писали:
_>System.NotSupportedException: "No data is available for encoding 1251.
Это не студия пишет, а компилятор. а установить надо пакет с кодировками, я так полагаю у вас проект коровый.
To do this, you need to register the CodePagesEncodingProvider instance from the System.Text.Encoding.CodePages package.
To do that, install the System.Text.Encoding.CodePages package:
dotnet add package System.Text.Encoding.CodePages
Then (after implicitly or explicitly running dotnet restore) you can call:
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
var enc1252 = Encoding.GetEncoding(1252);
Alternatively, if you only need that one code page, you can get it directly, without registration:
var enc1252 = CodePagesEncodingProvider.Instance.GetEncoding(1252);
Всем здрасьте.
это программка WinForms. на форме одна кнопка и два label
то есть всё очень скромно.
подскажите, почему вижел студия не может перекодировать строку в windows-1251
где там надо зарегистрировать Encoding.RegisterProvider method
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
...
...
string string_Data = "123456 трпр и т.д.";
// byte[] data = UTF8Encoding.UTF8.GetBytes( string_Data ); // РАБОТАЕТ
// byte[] data = Encoding.ASCII.GetBytes( string_Data ); // РАБОТАЕТ
// Encoding win1251 = Encoding.GetEncoding(1251); // ОШИБКА
Encoding win1251 = Encoding.GetEncoding("windows-1251"); // так тоже ОШИБКА
byte[] data = win1251.GetBytes( string_Data );
foreach (byte ch in data)
{
...
...
VS 2019 пишет:
System.NotSupportedException: "No data is available for encoding 1251.
For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method."
в реестре есть строка codepage
1251 и других nls полно.
большое спасибо.
varenikAA
var win1251 = CodePagesEncodingProvider.Instance.GetEncoding(1251);
byte[] data = win1251.GetBytes( string_Data );
Спасибо, это работает!
в свойствах проекта:
"Целевая рабочая среда" .NET 5.0
"Тип выходных данных" приложение Windows
Всех благодарю за совет и участие.