我的测试数据库具有AL32UTF8编码,但生产数据库具有WE8ISO8859P1编码。我的应用程序是在.NET中编写的,我使用默认的System.Data.OracleClient.OracleConnection
类来建立连接。Oracle编码可以设置为连接字符串吗?
我创建一个IDbCommand,并且当我想插入一些带有非ASCII符号的字符串时,我添加了IDbDataParameter对象。
在测试数据库一切正常,明显地转换.NET的内部字符串格式为AL32UTF8工作正常。但是在制作中我只是不起作用。 .NET内部字符串表示(即utf16)无法以某种方式转换为WE8ISO8859P1。我的问题: 你能指定连接字符串中的数据库的编码吗?还是有另一种方法告诉驱动程序(System.Data.OracleClient.OracleConnection
)数据库需要特定的编码?
请不要给出像这样的答案:convert(c1,'WE8ISO8859P1'),这不是我想要的! – Jaap 2010-10-12 10:41:36
另外:转换生产数据库目前不是一个选项。 – Jaap 2010-10-12 10:41:56
只要您不使用无法在WE8ISO8859P1中表示的字符,转换就会自动发生。如果你有这样的字符,无论如何你都不能将它存储在数据库中。你为什么不行?你有错误吗?什么是错误消息?请给我们更多的细节。 – Codo 2010-10-12 11:02:50