【发布时间】:2010-09-27 12:35:07
【问题描述】:
在使用 Oracle 10.2.0.3 JDBC 驱动程序从 Oracle 10g 保存和检索欧元字符时,我们遇到了问题。该问题仅发生在 Linux 下运行的 JUnit 测试期间。保存后从数据库返回的欧元字符完全搞砸了。 Oracle 已配置为使用字符集“WE8MSWIN1252”。难道Linux不能使用这个字符集?
【问题讨论】:
在使用 Oracle 10.2.0.3 JDBC 驱动程序从 Oracle 10g 保存和检索欧元字符时,我们遇到了问题。该问题仅发生在 Linux 下运行的 JUnit 测试期间。保存后从数据库返回的欧元字符完全搞砸了。 Oracle 已配置为使用字符集“WE8MSWIN1252”。难道Linux不能使用这个字符集?
【问题讨论】:
很有可能;代码页 1252 是 Microsoft 自己的 ISO-8859-1(又名 Latin-1)的扩展,它很少在 Linux 上使用,Linux 倾向于使用后者。欧元符号不是 Latin-1 的一部分,这可能是它无法在 Linux 上正确显示的原因。不能使用 UTF-8 吗?双方的工作方式相同。
【讨论】:
这不是 Linux 的事情。这是 jdbc 驱动程序的检索代码中的一个已知 Oracle 错误。有一个可用的补丁,但您需要访问 Oracle Metalink 才能下载它。建议的另一种选择是使用 OCI 驱动程序而不是瘦驱动程序。这可能是也可能不是您的选择。
编辑:
10.2.0.3 驱动程序中存在的这个错误,在 10.2.0.4 jdbc 驱动程序中已修复。
【讨论】: