问题
I am working with windows 10 universal App and the ARM CPU to create apps for the Raspberry Pi. I get the following error with encoding:
Additional information: 'windows-1252' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
private async void Login(string passcode)
{
try
{
MySqlConnection conn = new MySqlConnection("Server=...");
MySqlCommand cmd;
conn.Open();
cmd = new MySqlCommand("Select * from ...");
var dr = cmd.ExecuteReader();
int count = 0;
while (dr.Read())
count += 1;
var dialog = new MessageDialog((count == 1) ? "Logged In" : "Error");
await dialog.ShowAsync();
}
catch (Exception ex)
{
var dialog = new MessageDialog(ex.Message);
await dialog.ShowAsync();
}
finally { conn.Close(); }
}
}
I get the error in this line of code
dr = cmd.ExecuteReader();
Before I used to get it in
conn.open();
But I was able to solve it by adding
charset=utf8
to the connection string.
How can I solve this error?
回答1:
I resolved this issue adding
System.Text.EncodingProvider ppp;
ppp = System.Text.CodePagesEncodingProvider.Instance;
Encoding.RegisterProvider(ppp);
回答2:
From a .NET Core 2.2 I had to Install via Nuget the following two packages:
(System.Text.Encoding & System.Text.Encoding.CodePages)
Then you have to set it before use of libraries:
using System.Text;
…
{
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
...
}
来源:https://stackoverflow.com/questions/32471058/windows-1252-is-not-supported-encoding-name