c#在postgresql数据库中获取正确的数据编码

时间:2018-06-04 21:22:18

标签: c# postgresql character-encoding

我有Postgresql数据库,UTF8编码和排序规则设置为Windows1250。

它由Delphi编写的应用程序使用,并使用具有可选参数的ODBC驱动程序访问: 设置client_encoding = LATIN2。

在该应用程序中,正确显示数据库中的所有字符串。 现在我想使用c#应用程序获取数据库数据,但我无法正确编码。

我尝试使用不同的client_encodings和Encoding类来使其正确但没有成功。

例如,字符'š'是不能很好显示的字符之一。

  • 使用默认编码(utf8)我正在获取\ u009a
  • 使用设置client_encoding = latin2 我收到了吗?炭
  • 使用 set client_encoding = windows1250 我收到错误:“编码中字节序列为0xc2 0x9a的字符”UTF8“在编码WIN1250时没有等效”。

有任何建议如何解决这个问题?提前谢谢。

解: 我终于通过使用:

得到一个正确的字符串
Encoding.Default.GetString(Encoding.GetEncoding("Latin2").GetBytes(stringFromDB));

1 个答案:

答案 0 :(得分:0)

我终于通过使用以下命令得到了正确的字符串:

Encoding.Default.GetString(Encoding.GetEncoding("Latin2").GetBytes(stringFromDB));