RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-571124

Андрей Чуешков's questions

Martin Hope
Андрей Чуешков
Asked: 2024-11-07 18:03:28 +0000 UTC

如何解决从MySQL表中检索数据时显示错误字符的问题?

  • 5

大家下午好/晚上好/早上好/白天好!最大程序:连接到数据库中的表,从 SQL 表中提取一行数据并将其传递给将数据发送到 WooCommerce REST API 的方法。

问题:我连接到数据库,执行查询,在控制台中出现“裂纹”,因此,向 API 发送数据是错误的

数据检索示例代码如下:

public class DatabaseConnector {
private static final String URL = "jdbc:mysql://DATABASE_IP:3306/default_db?useUnicode=true&characterEncoding=UTF-8"; // тут нейросетка посоветовала указать еще явную кодировку
private static final String USER = "USER";
private static final String PASSWORD = "PASSWORD";

public static void fetchAndProcessData() {
    String query = "SELECT id, name, category " +
            "FROM default_db.Promelec_Products " +
            "WHERE REGEXP_REPLACE(name, '[[:space:]]', '') = name " +
            "AND name NOT LIKE '% %'";

    try (Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
         Statement stmt = conn.createStatement();
         ResultSet rs = stmt.executeQuery(query)) {

        while (rs.next()) { //тут начинаются танцы с бубном
            String name = new String(rs.getBytes("name"), StandardCharsets.UTF_8);
            String category = new String(rs.getBytes("category"), StandardCharsets.UTF_8);

            System.out.println(name + " " + category);
            ProductUploader.upload(name, category); //Отправляет данные в REST 
            
        }

    } catch (SQLException e) {
        e.printStackTrace();
    }
}

}

俄语字母的控制台输出(在本例中为名称+类别):

140��1201 140��1201, ������������ �������� ��������� ������

结果,向API发送数据是歪的

数据库中的表本身配置为: 字符集:utf8mb4 排序规则:utf8mb4_unicode_ci 两列都是 VARCHAR

发送方法 100% 有效,因为初始化的字符串已正确发送到 API

现在,亲爱的专家,请注意问题!

如何正确从数据库中提取数据?

ps CSV - 我尝试过,设置 JVM 的相同欧芹或多或少是一种工作方法,但并非所有字母都能正常解码

输出显示变量,如“char%”;

  • 变量名称、值
  • 'character_set_client', 'utf8mb4'
  • '字符集连接', 'utf8mb4'
  • '字符集数据库','utf8mb4'
  • '字符集文件系统','二进制'
  • '字符集结果', 'utf8mb4'
  • '字符集服务器', 'utf8mb4'
  • '字符集系统', 'utf8'
  • 'character_sets_dir','/usr/share/mysql/charsets/'
java
  • 2 个回答
  • 59 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5