JDBC中的字符集

时间:2012-04-02 12:43:10

标签: java jdbc oracle11g

我正在使用带有字符集的oracle 11G作为utf8。我有一张桌子,上面有日文和中文字符。

当我使用简单的JDBC程序查询数据库时,我只将问号作为输出。

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

好的,所以你说的是

SELECT value
  FROM v$nls_parameters
 WHERE parameter = 'NLS_CHARACTERSET'

返回UTF8?这在11g中非常不寻常 - 看到AL32UTF8的值是更常见的,这是Unicode标准的更新版本。

当您查看实际存储在数据库中的数据时会发生什么?如果您直接对数据库运行通过JDBC运行的相同查询但是调用DUMP函数而不是仅选择列,那么输出是什么?

SELECT DUMP( column_name, 1016 ) 
  FROM table_name
 WHERE some_key = some_value

您使用的是瘦Oracle JDBC驱动程序吗?或者您使用的是OCI JDBC驱动程序?或者您使用Oracle ODBC驱动程序和JDBC-ODBC桥作为标记意味着什么?后者在当今时代异常罕见 - 如果数据库平台提供本机JDBC驱动程序,则没有理由使用JDBC-ODBC桥驱动程序。

客户端上是否设置了NLS_LANG

答案 1 :(得分:0)

问题已经解决 Eclipse>偏好>一般>工作区>文本文件编码为UTF-8 谢谢大家。