【问题标题】:ResultSet's getString method returns ? (question marks) when the string contains multibyte charactersResultSet 的 getString 方法返回 ? (问号)当字符串包含多字节字符时
【发布时间】:2013-09-03 14:34:30
【问题描述】:

数据库是 oracle 11gR2,数据库的字符集是 AL32UTF8,我要查询的列是 NVARCHAR2。

ResultSet rs = statement.executeQuery(query);
while (oRS.next())
        {
            String s = oRS.getString(1);
            System.out.println(s);
        }

所有非英文多字节字符都显示为问号。 我尝试用 getBytes 替换 getString 并尝试使用“UTF-8”字符集将字节数组转换为字符串,但没有运气。

我的意图不是在控制台上打印,而是将此字符串列表嵌入到 HTML 文件(列表控件)中。即使在那里,它也会显示带有问号的字符串。 HTML 页面使用 ISO-8859-1 编码

【问题讨论】:

  • AL32UTF8和Java的UTF-8一样吗?
  • 您的控制台输出字体是否支持该字符?
  • 我打印到控制台只是为了说明。我实际上将此字符串列表嵌入到 HTML 文件(列表控件 编码

标签: java oracle jdbc nvarchar


【解决方案1】:

我将 html 页面的编码更改为 UTF-8,它开始工作。所以问题不在于 JDBC。

【讨论】:

    猜你喜欢
    • 2016-11-20
    • 2014-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    • 1970-01-01
    相关资源
    最近更新 更多