0
我使用NHibernate的以下配置来连接到Oracle。在其中一个类中,我存储了一个unicode字符串,如日本语(日本)。该列的数据字段是NVARCHAR2(),但是,当检索数据时,该值已损坏,显示??? (??)。沿线的某处我正在失去我的编码,但是在哪里丢失。有任何想法吗?使用NHibernate和Oracle的Unicode字符串
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.driver_class">NHibernate.Driver.OracleDataClientDriver</property>
<property name="connection.connection_string_name">Oracle</property>
<property name="show_sql">true</property>
<property name="dialect">NHibernate.Dialect.Oracle10gDialect</property>
<property name="query.substitutions">true 1, false 0, yes 'Y', no 'N'</property>
<property name="cache.use_second_level_cache">true</property>
<property name="adonet.batch_size">30</property>
<property name="cache.provider_class">NHibernate.Caches.SysCache.SysCacheProvider, NHibernate.Caches.SysCache</property>
<property name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property>
</session-factory>
当您检索信息时,如何识别信息丢失?检查它的最可靠方法是查看字节数组是否与所选编码匹配(我假定使用UTF-8),以排除字体问题。 – jishi
选择PL/SQL和Linqpad都会显示损坏的字符串。我还没有完成逐字节比较,但我确实假设(也许不正确)这些工具中的一个可以正常工作。 –
潜在的相关问题:http://stackoverflow.com/questions/1192281/how-to-save-unicode-data-to-oracle/1192290#1192290 –