我正在使用带有字符集的oracle 11G作为utf8。我有一张桌子,上面有日文和中文字符。
当我使用简单的JDBC程序查询数据库时,我只将问号作为输出。
有人可以帮助我吗?
答案 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 谢谢大家。