Oracle JDBC Euro字符

使用Oracle 10.2.0.3 JDBC驱动程序从Oracle 10g保存和检索Euro字符时,我们遇到问题。 该问题仅发生在Linux下运行的JUnit测试期间。 保存后从数据库返回的欧元字符完全搞砸了。 Oracle已配置为使用字符集“WE8MSWIN1252”。 是不是Linux无法使用这个字符集?

这不是Linux的事情。 这是jdbc驱动程序的检索代码中已知的Oracle错误。 有一个补丁可用,但您需要访问Oracle Metalink才能下载它。 另一种选择建议使用OCI驱动程序而不是薄驱动程序。 这可能是也可能不是你的选择。

编辑:

这个错误存在于10.2.0.3驱动程序中,在10.2.0.4 jdbc驱动程序中得到修复。

这很有可能; 代码页1252是Microsoft自己的ISO-8859-1(又名Latin-1)的扩展,它很少用于Linux,后者倾向于使用后者。 欧元符号不是Latin-1的一部分,这可能是它无法在Linux上正常显示的原因。 你不能使用UTF-8吗? 它在双方都会以同样的方式运作。