排骨学长(\t) 2023-11-05 15:34 采纳率: 43.5%
浏览 6
已结题

java读取sqlite数据某个字段乱码


    public void findAll() throws SQLException, UnsupportedEncodingException {
        Statement statement = connection.createStatement();
        ResultSet resultSet = statement.executeQuery("SELECT * FROM note_contents");

        while (resultSet.next()) {
            System.out.println(new String(resultSet.getBytes("content"),"UTF-8"));
        }
        resultSet.close();
        statement.close();
        connection.close();
    }

在可视化工具和shell命令查询不乱码,java查询乱码

img

  • 写回答

2条回答 默认 最新

  • 老牛毕设 2023-11-05 15:42
    关注

    确认Java程序读取数据的编码是否正确。在你的代码中,你使用了"UTF-8"编码来解码从数据库中获取的字节数据。如果数据库中的数据不是UTF-8编码,那么解码就会出现问题。你需要知道数据库的真正编码,并将其替换到代码中。

    假设你的数据库使用的是UTF-16编码,你可以尝试以下修改:

    public void findAll() throws SQLException, UnsupportedEncodingException {  
        Statement statement = connection.createStatement();  
        ResultSet resultSet = statement.executeQuery("SELECT * FROM note_contents");  
      
        while (resultSet.next()) {  
            System.out.println(new String(resultSet.getBytes("content"),"UTF-16")); // 修改这里的编码为UTF-16  
        }  
        resultSet.close();  
        statement.close();  
        connection.close();  
    }
    
    

    如果这个修改还不能解决你的问题,你可能需要进一步检查你的数据、数据库和程序是否有其他问题。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月7日
  • 创建了问题 11月5日

悬赏问题

  • ¥15 为什么树莓派5b显示禁止连接
  • ¥20 流量太费!寻找便宜的app音视频SDK或平替方案。
  • ¥15 kubeasz部署遇到问题
  • ¥15 GUIDE to App Designer Migration Tool for MATLAB
  • ¥50 第三代非支配排序遗传算法(NSGA-Ⅲ)和多目标粒子群优化算法(MOPSO)的实现
  • ¥20 plant simulation与python com接口实时数据交互
  • ¥15 有关汽车的MC9S12XS128单片机实验
  • ¥15 求c语言动态链表相关课程有偿,或能将这块知识点讲明白
  • ¥15 FLKT界面刷新异常
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证