Oracle编码可以在连接字符串中设置吗?

发布于 2024-09-27 01:59:54 字数 441 浏览 5 评论 0原文

我的测试数据库具有 AL32UTF8 编码,但生产数据库具有 WE8ISO8859P1 编码。我的应用程序是用 .NET 编写的,我使用默认的 System.Data.OracleClient.OracleConnection 类来建立连接。

当我想要插入一些带有非 ASCII 符号的字符串时,我创建一个 IDbCommand 并添加 IDbDataParameter 对象。

在测试数据库上,一切运行良好,显然将 .NET 的内部字符串格式转换为 AL32UTF8 运行良好。然而在生产上我就是不工作。 .NET 内部字符串表示形式(utf16)无法以某种方式转换为 WE8ISO8859P1。

我的问题: 您可以在连接字符串中指定数据库的编码吗?或者是否有另一种方法来告诉驱动程序(System.Data.OracleClient.OracleConnection)数据库需要特定的编码?

My test-database has a AL32UTF8 encoding, however the production database has a WE8ISO8859P1 encoding. My application is writen in .NET and I use the default System.Data.OracleClient.OracleConnection class to make the connection.

I create a IDbCommand and I add IDbDataParameter objects when I want to INSERT some strings with non ASCII symbols.

On the test database everything works well, apperently converting .NET's internal string format to AL32UTF8 works fine. However on production I just doesn't work. The .NET internal string representation (which is utf16) can't be converted to WE8ISO8859P1 somehow.

My question:
Can you specify the database's encoding in the connection-string? Or is there another method to tell the driver (System.Data.OracleClient.OracleConnection) that the database expects a specific encoding?

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

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

发布评论

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

评论(1

软糯酥胸 2024-10-04 01:59:55

只要您不使用无法在 WE8ISO8859P1 中表示的字符,转换就会自动进行。如果你有这样的字符,无论如何你都无法将其存储在数据库中。

如果您尝试存储欧元符号 (€),您将不走运。它不是 WE8ISO8859P1 的一部分。

The conversion should happend automatically as long as you don't use characters that cannot be represented in WE8ISO8859P1. If you have such characters, you cannot store it in the database anyway.

If you try to store the Euro sign (€), you'll be out of luck. It's not part of WE8ISO8859P1.

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