postgres npgsql with c# - 尝试将特殊字符写入 ascii 编码的数据库

发布于 2024-10-31 14:51:29 字数 363 浏览 0 评论 0原文

我正在使用开源库 npgsql http://pgfoundry.org/projects/npgsql/ 来操作postgres 数据库上的第三方数据。数据库采用 SQL_ASCII 编码。

这样的标准 C# 字符串运行查询,则

如果我使用像INSERT INTO CITIES(cityname) value("Köln")

数据库中显示的值看起来更像是:пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ

例如炒。我花了很多时间尝试使用不同的字符串编码等但没有成功

I am using the open source library npgsql http://pgfoundry.org/projects/npgsql/ to manipulate third party data on a postgres database. The database is encoded SQL_ASCII.

If I run a query using a standard c# string like

INSERT INTO CITIES(cityname) values("Köln")

the value that shows up in the database looks more like: пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ

e.g. scrambled. I've spent many hours trying to use different string encodings etc with no success

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

む无字情书 2024-11-07 14:51:29

SQL_ASCII 表示您关闭数据库中的编码功能。因此,您需要确保所有客户端都使用相同的编码。我相信 npgsql 将始终使用 UTF8,并且这是无法更改的。

因此,不存在“数据库中显示的值” - 它将取决于与数据库通信的客户端所使用的编码。

解决此问题的最佳方法是在数据库中设置实际编码,然后设置将其转换为有用的内容 - 例如 UTF8 或 LATIN1。

SQL_ASCII means you turn off the encoding functionality in the database. Thus it's up to you to make sure all your clients use the same encoding. I believe npgsql will always use UTF8, and that this cannot be changed.

So there is no "the value that shows up in the database" - it will be depending on what encoding the client that talks to the database is in.

The best way to fix it is to set an actual encoding in the database, and set it to something useful - such as UTF8 or LATIN1.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文