Muh*_*mah 7 c# mysql encoding arm windows-1252
我正在使用Windows 10 Universal App和ARM CPU为Raspberry Pi创建应用程序.编码时出现以下错误:
附加信息:'windows-1252'不是受支持的编码名称.有关定义自定义编码的信息,请参阅Encoding.RegisterProvider方法的文档.
这是我的代码.
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(); }
}
}
Run Code Online (Sandbox Code Playgroud)
我在这行代码中得到了错误
dr = cmd.ExecuteReader();
Run Code Online (Sandbox Code Playgroud)
在我以前使用它之前
conn.open();
Run Code Online (Sandbox Code Playgroud)
但我能够通过添加来解决它
charset=utf8
Run Code Online (Sandbox Code Playgroud)
到连接字符串.
我该如何解决这个错误?
Ωme*_*Man 29
在 .NET Core 2.2 项目中,我必须通过 Nuget安装以下两个包:
(System.Text.Encoding & System.Text.Encoding.CodePages)
那么你必须在使用库之前设置它:
using System.Text;
…
{
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
...
}
Run Code Online (Sandbox Code Playgroud)
小智 13
我解决了这个问题
System.Text.EncodingProvider ppp;
ppp = System.Text.CodePagesEncodingProvider.Instance;
Encoding.RegisterProvider(ppp);
Run Code Online (Sandbox Code Playgroud)