【发布时间】:2010-10-12 10:39:16
【问题描述】:
我的测试数据库使用 AL32UTF8 编码,但生产数据库使用 WE8ISO8859P1 编码。我的应用程序是用 .NET 编写的,我使用默认的 System.Data.OracleClient.OracleConnection 类来建立连接。
当我想插入一些非 ASCII 符号的字符串时,我创建了一个 IDbCommand 并添加了 IDbDataParameter 对象。
在测试数据库上一切正常,显然将 .NET 的内部字符串格式转换为 AL32UTF8 工作正常。但是在生产中我只是不工作。 .NET 内部字符串表示(即 utf16)无法以某种方式转换为 WE8ISO8859P1。
我的问题:
您可以在连接字符串中指定数据库的编码吗?还是有其他方法告诉驱动程序 (System.Data.OracleClient.OracleConnection) 数据库需要特定的编码?
【问题讨论】:
-
请不要给出如下答案:convert(c1,'WE8ISO8859P1'),这不是我想要的!
-
另外:目前还不能转换生产数据库。
-
只要您不使用 WE8ISO8859P1 中无法表示的字符,转换就会自动进行。如果您有这样的字符,则无论如何都无法将其存储在数据库中。为什么你认为它不起作用?你有错误吗?错误信息是什么?请提供更多详细信息。
-
没有错误信息,但是 € €符号无法正确存储。感谢 Codo,这指向了我:forums.oracle.com/forums/thread.jspa?threadID=391482
标签: oracle encoding connection-string