oracle jdbc unicode for polish字符无法正常工作

时间:2016-09-13 17:00:46

标签: java oracle jdbc unicode

嗨:我们有一个能够处理unicode支持报告的工具。它工作正常,直到我们遇到这个波兰人物的新报告。

我们能够检索数据并正确显示,但是,当我们使用数据作为输入来执行搜索时,它似乎无法正确转换某些字符,因此无法检索数据。这是一个样本。

表抛光有两列:派对,描述。派对的价值之一是“Bełchatów”。我使用jdbc从数据库中读取该值,并使用SQL使用以下语句进行搜索: SELECT * from polish where party =N'Bełchatów'

然而,这没有给我任何结果。这是ojdbc6.jar。 (JDK 8)但是,这确实给了我ojdbc7.jar的结果。

是什么原因?我们如何在使用ojdbc6.jar时解决。

谢谢!

1 个答案:

答案 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供应商,设置它的方式可能不同。