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数据库中获取正确的数据编码的主要内容,如果未能解决你的问题,请参考以下文章