编码= ASCII; 和编码= UNICODE; 不要在Npgsql 3连接string中工作

我使用Big SQL安装程序安装了新的PostgreSQL(9.6.1),使用.msi安装程序安装了新的Npgsql(3.2.0),但非ASCII字符支持似乎已被破坏。

我的连接string是:

<add name="Northwind" connectionString="Database=Northwind;Server=localhost;Port=5432;User Id=postgres;Password=123;Encoding=ASCII;" providerName="Npgsql"/> 

在读取非ASCII字符数据时,我得到这样的exception消息:

 System.Text.DecoderFallbackException : Unable to translate bytes [C3] at index 22 from specified code page to Unicode. 

我曾尝试使用Encoding=UNICODE; 相反,但都不起作用。

Solutions Collecting From Web of "编码= ASCII; 和编码= UNICODE; 不要在Npgsql 3连接string中工作"

您可能有一个旧的Npgsql连接字符串。 使用当前(3.2.0)Npgsql访问当前(9.6.1)PostgreSQL时, Encoding=ASCIIEncoding=UNICODE将不再起作用。

解决方案:完全删除Encoding=xxx ,一切正常!

您不需要“修复”您的Postgres编码和区域设置,您不需要尝试查找连接字符串中正在使用的Encoding值; Ngpsql 3只能在没有Encoding设置的情况下运行,而Windows则是默认的Postgres安装设置( Encoding=UTF8 | Collate=English_United Kingdom.1252 | Ctype=English_United Kingdom.1252 )(英国版本,但我相信English_United States.1252适用English_United States.1252美国和其他地区)。

(请参阅: https : //github.com/npgsql/npgsql/issues/1396 )