嗨:我们有一个能够处理unicode支持报告的工具。它工作正常,直到我们遇到这个波兰人物的新报告。
我们能够检索数据并正确显示,但是,当我们使用数据作为输入来执行搜索时,它似乎无法正确转换某些字符,因此无法检索数据。这是一个样本。
表抛光有两列:派对,描述。派对的价值之一是“Bełchatów”。我使用jdbc从数据库中读取该值,并使用SQL使用以下语句进行搜索: SELECT * from polish where party =N'Bełchatów'
然而,这没有给我任何结果。这是ojdbc6.jar。 (JDK 8)但是,这确实给了我ojdbc7.jar的结果。
是什么原因?我们如何在使用ojdbc6.jar时解决。
谢谢!
答案 0 :(得分:0)
这是因为Oracle JDBC驱动程序不会将字符串转换为unicode字符。有一个数据库属性,oracle.jdbc.defaultNChar = true。 http://docs.oracle.com/cd/B14117_01/java.101/b10979/global.htm
当此属性为true时,它会将带有N'Belchatów'nchartliteral标记的字符串转换为u'Be \ 0142chat \ 00f3w'。
用户还可以设置数据源级别。取决于您的Persist API供应商,设置它的方式可能不同。