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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#在postgresql数据库中获取正确的数据编码相关的知识,希望对你有一定的参考价值。

我有Postgresql数据库,UTF8编码和整理设置为Windows1250。

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

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

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

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

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

有什么建议如何解决这个问题?先感谢您。

解决方案:我最终使用以下方法获得正确的字符串

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

我终于使用以下方法获得正确的字符串:

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

以上是关于c#在postgresql数据库中获取正确的数据编码的主要内容,如果未能解决你的问题,请参考以下文章

Postgresql:查询返回不正确的数据

在 postgresql 的 jsonb[] 类型列中插入数据的正确语法是啥

如何在 PostgreSQL 中仅获取数据库的表名

如何在php脚本中接受PostgreSQL数据库数量?

如何在nodejs + postgresql中实现分页

在 Postgresql 中进行水平分区的正确步骤是啥?