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

问题描述 投票:-1回答:1

我有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));
c# postgresql character-encoding
1个回答
0
投票

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

Encoding.Default.GetString(Encoding.GetEncoding("Latin2").GetBytes(stringFromDB));
© www.soinside.com 2019 - 2024. All rights reserved.