Windows -1252 不支持编码名称
Posted
技术标签:
【中文标题】Windows -1252 不支持编码名称【英文标题】:Windows -1252 is not supported encoding name 【发布时间】:2015-12-04 22:06:44 【问题描述】:我正在使用 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
到连接字符串。
我该如何解决这个错误?
【问题讨论】:
不确定您还有什么问题,因为“我能够通过...解决它”是帖子的最后一部分...请用确切的问题替换感谢信。 ***.com/questions/13563973/… @AlexeiLevenkov 好吧,当我在行代码“conn.open();”中遇到同样的错误时,我能够解决它但是,现在我在“dr = cmd.ExecuteReader();”行中收到此错误这说明清楚了吗? @vnikhil 谢谢,但这不适用于我的情况 cp1252 非常接近 MySQL 的“latin1”CHARACTER SET
。
【参考方案1】:
从 .NET Core 2.2 项目中,我必须通过 Nuget 安装以下两个包:
(System.Text.Encoding & System.Text.Encoding.CodePages)
那你必须在使用库之前设置它:
using System.Text;
…
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
...
【讨论】:
这为我解决了问题,似乎是解决问题的更合适的方法。【参考方案2】:我通过添加解决了这个问题
System.Text.EncodingProvider ppp = System.Text.CodePagesEncodingProvider.Instance;
Encoding.RegisterProvider(ppp);
【讨论】:
这是正确的答案!它帮助我解决我的问题!谢谢! 正如@ΩmegaMan 所说,对于 .NET Core/Standard 项目,您需要将 NuGet 包System.Text.Encoding.CodePages
添加到引用中。以上是关于Windows -1252 不支持编码名称的主要内容,如果未能解决你的问题,请参考以下文章
Windows Media Player 无法播放该文件。可能是播放机不支持该文件类型,或者不支持用于压缩该文件的编...
如何使 vlc 支持 fdk-aac 编码(windows平台
如何使 vlc 支持 fdk-aac 编码windows平台