Xamarin - 找不到编码错误 1252 数据

A.V*_*tal 13 encoding android ios xamarin visual-studio-2017

我正在处理一个应用程序Xamarinfor Visual Studio 2017。我试图测试我的应用Android,并iOS现场播放设备。当我尝试运行它时,我的设备(AndroidiOS)出现以下错误:

级别=错误,标题=可视化错误,消息=无法找到编码 1252 数据。确保您安装并启用了正确的国际代码集程序集。(NotSupportedException)

我通过Google搜索发现了类似的问题,但进行更改后,它仍然无法运行。我已经检查了两种设备的所有国际化选项,我什至直接保存为UTF-8编码,因为我认为这可能是 encoding 的问题windows-1252。我也引用I18N.dllI18N.West.dll两个。

任何帮助将不胜感激。谢谢你。

更新:

我已经能够进一步缩小问题的范围。

using (SqlConnection sqlConn = new 
 SqlConnection(Configuration.ConnectionString))
{
    //sqlConn.Open(); 
}
Run Code Online (Sandbox Code Playgroud)

.open是导致编码错误。注释掉之后,该应用程序将在实时设备上运行,但是,我现在得到:

级别=错误,标题=未捕获的异常,消息=无法找到编码 1252 数据。确保您安装并启用了正确的国际代码集程序集。(NotSupportedException)

Visual Studio 2017抛出以下错误

System.Reflection.TargetInvocationException:调用的目标已抛出异常。

using (SqlConnection sqlConn = new 
SqlConnection(Configuration.ConnectionString))
Run Code Online (Sandbox Code Playgroud)

它发生在它试图从using上面的语句中从数据库中提取的那一刻。我正在使用SQL Server 2008 R2. 我只能说它在使用 和 发送到 SQL ServerAndroid和从 SQL Server 接收时出现问题iOS

更新 2:

使用 some 后Exception Handlers,我将其归结为这个内部异常:

{System.NotSupportedException:找不到编码 1252 数据。确保您安装并启用了正确的国际代码集程序集。在 System.Text.Encoding.GetEncoding (System.Int32 codepage) [0x0023f] in <896ad1d315ca4ba7b117efb8dacaedcf>:0 在 Mono.Data.Tds.TdsCharset.GetEncodingFromSortOrder (System.Int32 sortId2 at Mono].000000000 Tds.TdsCharset.GetEncodingFromSortOrder (System.Byte[] collat​​ion) [0x00006] in :0 at Mono.Data.Tds.TdsCharset.GetEncoding (System.Byte[] collat​​ion) [0x00008] in :0 at Mono.Data.Tds。 Protocol.Tds.ProcessEnvironmentChange () [0x00229] in :0 at Mono.Data.Tds.Protocol.Tds.ProcessSubPacket () [0x00129] in :0 at Mono.Data.Tds.Protocol.Tds.NextResult () [0x00039]在 :0 在 Mono.Data.Tds.Protocol.Tds.SkipToEnd () [0x00000] 在 :0 在 Mono.Data.Tds。

发生在:

DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
Run Code Online (Sandbox Code Playgroud)

cod*_*ion 19

在 Visual Studio for Mac 的“iOS Build”项目选项页面中,您应该选中“west”复选框。Android 属性也是如此。

在此处输入图片说明

在 Android 项目中,转到 Properties -> Android Options

然后链接器选项,在“其他支持的编码”中勾选“West”。

  • 你是救星 (3认同)
  • 对于 Mac 上的 Visual Studio 2019,转到“项目”&gt;“项目名称”“工具选项”-&gt;“Android 构建”-&gt;“链接器”-&gt;“国际化”-&gt; 选中“west”框。 (2认同)

Mat*_*s Z 12

对于 VS2019,在 Windows 上:检查:“其他支持的编码”

在此输入图像描述