我的测试数据库使用AL32UTF8编码,而生产数据库使用WE8ISO8859P1编码。我的应用程序是用.NET编写的,并且我使用默认的System.Data.OracleClient.OracleConnection类来建立连接。
当我想要插入一些带有非ASCII码符号的字符串时,我会创建一个IDbCommand并添加IDbDataParameter对象。
在测试数据库上,一切都运行得很好,很明显,将.NET的内部字符串格式转换为AL32UTF8工作得很好。然而,在生产环境中,我就是不能工作。由于某种原因,无法将.NET内部字符串表示形式(即utf16)转换为WE8ISO8859P1。
我的问题是:您能在connection-string中指定数据库的编码吗?或者,是否有另一种方法可以告诉驱动程序(System.Data.OracleClient.OracleConnection)数据库需要特定的编码?
发布于 2010-10-13 13:44:01
只要您不使用无法在WE8ISO8859P1中表示的字符,转换就会自动发生。如果您有这样的字符,则无论如何都不能将其存储在数据库中。
如果您尝试存储欧元符号(欧元),您将不会走运。它不是WE8ISO8859P1的一部分。
https://stackoverflow.com/questions/3913746
复制相似问题