gpt4 book ai didi

c# - 如何在 NpgsqlConnection 中设置编码

转载 作者:行者123 更新时间:2023-11-29 12:33:46 25 4
gpt4 key购买 nike

我有一个 PostgreSQL 数据库,它使用字符编码 WIN1252

在查询数据库时,有些记录在尝试读取数据时会产生错误,因为它正在尝试将其转换为UTF8。这发生在一些包含某些非拉丁字符的外国名字上。

错误是:

ERROR: 22P05: character with byte sequence 0x81 in encoding "WIN1252" has no equivalent in encoding "UTF8"

当我在 NpgsqlDataReader 上调用 Read() 时会发生这种情况。

我的连接定义为:

new NpgsqlConnection("Server=127.0.0.1;Port=5432;Database=xyz;User Id=****;Password=****;");

如何使用 C# 读取此数据?

最佳答案

我已经设法解决了这个问题。无法设置连接字符串中的属性或 NpgsqlConnectionNpgsqlCommand 的任何属性。

但是,我能够在查询中设置 client_encoding 的值。所以在打开连接后我首先执行了(非)查询:

set client_encoding = 'WIN1252'

之后,同一连接上的任何后续命令都使用正确的编码并毫无怨言地返回结果。

关于c# - 如何在 NpgsqlConnection 中设置编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16342198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com