Files
loan-pricing/fix-encoding.md

76 lines
1.5 KiB
Markdown
Raw Permalink Normal View History

2026-01-20 11:20:39 +08:00
# 修复中文乱码问题
## 问题原因
1. 数据库连接 URL 使用的是 `characterEncoding=utf8` 而不是 `utf8mb4`
2. 已插入的数据使用错误的编码保存
## 解决步骤
### 步骤 1: 清理乱码数据
在数据库中执行:
```sql
-- 删除表中的乱码数据
DELETE FROM loan_pricing_workflow;
```
或删除表重建:
```sql
DROP TABLE IF EXISTS `loan_pricing_workflow`;
-- 然后重新执行 sql/loan_pricing_workflow.sql
```
### 步骤 2: 重启服务
配置文件已更新,需要重启后端服务使配置生效:
```bash
# 停止当前服务
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: 重新执行测试
```bash
cd d:\利率定价\loan-pricing-892\loan-pricing-892-v2.0
bash run-api-tests.sh
```
## 配置说明
已修改的配置文件:`ruoyi-admin/src/main/resources/application-dev.yml`
修改前:
```yaml
url: jdbc:mysql://...?useUnicode=true&characterEncoding=utf8&...
```
修改后:
```yaml
url: jdbc:mysql://...?useUnicode=true&characterEncoding=utf8mb4&...
```
## 验证方法
重启服务并插入新数据后,检查数据库:
```sql
SELECT serial_num, cust_name, cust_type, guar_type FROM loan_pricing_workflow;
```
中文应该正常显示,例如:
- cust_name: "张三" (而不是乱码)
- cust_type: "个人" (而不是乱码)
- guar_type: "信用" (而不是乱码)