Windows-1252不是受支持的编码名称。

31

我正在使用Windows 10通用应用程序和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(); }
    }
}

我在这行代码中遇到了错误

dr = cmd.ExecuteReader();

以前我曾经能够理解它

conn.open();

但我通过添加解决了它。

charset=utf8

如何在连接字符串中解决此错误?

我该怎么做才能解决这个错误?


2
不确定你还有什么问题,因为“我能通过...”是帖子的最后一部分...请用确切的问题代替感谢留言。 - Alexei Levenkov
http://stackoverflow.com/questions/13563973/windows-1255-is-not-a-supported-encoding-name - Nikhil Vartak
1
@AlexeiLevenkov 好的,当我在代码行“conn.open();”中遇到相同的错误时,我能够解决它。然而,现在我在代码行“dr = cmd.ExecuteReader();”中遇到了这个错误。这样清楚吗? - Muhand Jumah
@vnikhil 谢谢你,但这对我的情况不起作用。 - Muhand Jumah
cp1252非常接近于MySQL的“latin1”字符集。 - Rick James
2个回答

54

在一个.NET Core 2.2项目中,我不得不通过Nuget安装以下两个软件包:

System.Text.Encoding | CodePages

(System.Text.Encoding & System.Text.Encoding.CodePages)

然后您需要在使用库之前设置它:

 using System.Text;
 …
 {
    Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
    ...
 }

2
这对我有用,而且似乎是更正式的解决问题的方式。 - AlexKven
修复了使用 DataTable.ReadXml(fileName) 时出现的问题;ΩmegaMan 救了我的一天。 - Pepik

39

我通过添加解决了这个问题。

System.Text.EncodingProvider ppp = System.Text.CodePagesEncodingProvider.Instance;
Encoding.RegisterProvider(ppp);

1
这是正确的答案!它帮助我解决了我的问题!谢谢! - Shinichi
1
正如@ΩmegaMan所指出的那样,对于.NET Core/Standard项目,您需要将NuGet包System.Text.Encoding.CodePages添加到引用中。 - mikiqex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接