2015-09-09 47 views
6

我正在使用Windows 10通用应用程序和ARM CPU来为Raspberry Pi创建应用程序。编码中出现以下错误:Windows -1252不支持编码名称。 C#

附加信息:'windows-1252'不是受支持的编码名称。有关定义自定义编码的信息,请参阅Encoding.RegisterProvider方法的文档。

这是我的代码。

private async void Login(string passcode) 
    { 
     try 
     { 
      MySqlConnection conn = new MySqlConnection("Server=127.0.0.1;Port=3306;Database=database;Uid=username;Pwd=password;SslMode=None;charset=utf8"); 
      MySqlCommand cmd; 

      conn.Open(); 

      cmd = new MySqlCommand("Select * from users where User = '" + passcode + "'", conn); 

      MySqlDataReader dr; 

      dr = cmd.ExecuteReader(); 

      int count = 0; 

      while (dr.Read()) 
      { 
       count += 1; 
      } 

      if(count == 1) 
      { 
       var dialog = new MessageDialog("Logged In"); 
       await dialog.ShowAsync(); 
      } 
      else 
      { 
       var dialog = new MessageDialog("Error"); 
       await dialog.ShowAsync(); 
      } 

     } 
     catch (Exception ex) 
     { 
      if (ex is MySqlException) 
      { 
       MySqlException exl = (MySqlException)ex; 
       var dialog = new MessageDialog(ex.Message + Environment.NewLine + exl.Number); 
       await dialog.ShowAsync(); 
      } 
      else 
      { 
       var dialog = new MessageDialog(ex.Message + Environment.NewLine); 
       await dialog.ShowAsync(); 
      } 

      //throw; 
     } 
     finally 
     { 
      conn.Close(); 
     } 


    } 
} 

我得到的错误在这行代码

dr = cmd.ExecuteReader(); 

之前,我用得到它

conn.open(); 

但我可以通过添加

charset=utf8 
解决呢

到连接字符串。

我该如何解决这个错误?

+2

不知道是什么问题,你仍然有作为“我能够......要解决它”是帖子的最后一部分......请更换谢谢配合笔记确切的问题。 –

+0

http://stackoverflow.com/questions/13563973/windows-1255-is-not-a-supported-encoding-name – niksofteng

+1

@AlexeiLevenkov以及我能够解决它,当我得到同样的错误在行代码“conn 。打开();”但是,现在我在行“dr = cmd.ExecuteReader();”中收到此错误这说明了吗? –

回答

9

我解决了这个问题,将

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