Files
loan-pricing/fix-encoding.md
2026-01-20 11:20:39 +08:00

1.5 KiB

修复中文乱码问题

问题原因

  1. 数据库连接 URL 使用的是 characterEncoding=utf8 而不是 utf8mb4
  2. 已插入的数据使用错误的编码保存

解决步骤

步骤 1: 清理乱码数据

在数据库中执行:

-- 删除表中的乱码数据
DELETE FROM loan_pricing_workflow;

或删除表重建:

DROP TABLE IF EXISTS `loan_pricing_workflow`;
-- 然后重新执行 sql/loan_pricing_workflow.sql

步骤 2: 重启服务

配置文件已更新,需要重启后端服务使配置生效:

# 停止当前服务
pkill -f "ruoyi-admin.jar"

# 重新打包(可选,如果没有修改代码)
cd d:\利率定价\loan-pricing-892\loan-pricing-892-v2.0
mvn clean package -Dmaven.test.skip=true

# 启动服务
cd ruoyi-admin/target
java -jar ruoyi-admin.jar

步骤 3: 重新执行测试

cd d:\利率定价\loan-pricing-892\loan-pricing-892-v2.0
bash run-api-tests.sh

配置说明

已修改的配置文件:ruoyi-admin/src/main/resources/application-dev.yml

修改前:

url: jdbc:mysql://...?useUnicode=true&characterEncoding=utf8&...

修改后:

url: jdbc:mysql://...?useUnicode=true&characterEncoding=utf8mb4&...

验证方法

重启服务并插入新数据后,检查数据库:

SELECT serial_num, cust_name, cust_type, guar_type FROM loan_pricing_workflow;

中文应该正常显示,例如:

  • cust_name: "张三" (而不是乱码)
  • cust_type: "个人" (而不是乱码)
  • guar_type: "信用" (而不是乱码)