pangu-user-platform/sql
神码-方晓辉 99657d804b fix: 修复RuoYi系统表中文乱码问题
## 问题描述
用户反馈:RuoYi原SQL导入后,多个系统表中的中文内容显示为乱码

## 乱码表统计

### 受影响的表
1. **sys_role** - 角色表
   - role_name: 超级管ç†å'˜ → 超级管理员 
   - remark: 普通è§'色 → 普通角色 

2. **sys_dept** - 部门表
   - dept_name: è‹¥ä¾ç§'技 → 若依科技 
   - leader: è‹¥ä¾ → 若依 

3. **sys_user** - 用户表
   - nick_name: 乱码 → 管理员/若依 

4. **sys_post** - 岗位表
   - post_name: 乱码 → 董事长/项目经理等 

5. **sys_dict_type** - 字典类型表
   - dict_name: 乱码 → 用户性别/菜单状态等 

6. **sys_dict_data** - 字典数据表
   - dict_label: 乱码 → 男/女/正常/停用等 

7. **sys_config** - 配置表
   - config_name: 乱码 → 主框架页配置等 

## 问题原因

### 字符集转换错误
原RuoYi SQL文件在导入时,UTF-8编码的中文被错误地按照Latin1解码,导致:
- UTF-8字节序列被拆分成多个Latin1字符
- 显示为类似"超级管ç†å'˜"的乱码

### 受影响数据范围
-  系统管理相关表:角色、部门、用户、岗位
-  字典管理表:字典类型、字典数据
-  系统配置表:参数配置
-  菜单表:正常(已正确导入)

## 解决方案

### 创建修复SQL文件
**新增**:`sql/fix_ruoyi_charset.sql`

**修复内容**:
```sql
-- 1. 角色表(2条记录)
UPDATE sys_role SET role_name = '超级管理员' WHERE role_id = 1;
UPDATE sys_role SET role_name = '普通角色' WHERE role_id = 2;

-- 2. 部门表(10条记录)
UPDATE sys_dept SET dept_name = '若依科技' WHERE dept_id = 100;
UPDATE sys_dept SET dept_name = '深圳总公司' WHERE dept_id = 101;
...

-- 3. 用户表(2条记录)
UPDATE sys_user SET nick_name = '管理员' WHERE user_id = 1;
UPDATE sys_user SET nick_name = '若依' WHERE user_id = 2;

-- 4. 岗位表(4条记录)
UPDATE sys_post SET post_name = '董事长' WHERE post_id = 1;
...

-- 5. 字典类型表(10条记录)
UPDATE sys_dict_type SET dict_name = '用户性别' WHERE dict_type = 'sys_user_sex';
...

-- 6. 字典数据表(29条记录)
UPDATE sys_dict_data SET dict_label = '男' WHERE dict_code = 1;
UPDATE sys_dict_data SET dict_label = '女' WHERE dict_code = 2;
...

-- 7. 配置表(6条记录)
UPDATE sys_config SET config_name = '主框架页-默认皮肤样式名称' WHERE config_id = 1;
...
```

**使用方法**:
```bash
cd sql
mysql -h8.148.25.55 -P3306 -uroot -p --default-character-set=utf8mb4 pguser-db < fix_ruoyi_charset.sql
```

## 修复结果

### 执行统计
-  角色表:2条记录修复
-  部门表:10条记录修复
-  用户表:2条记录修复
-  岗位表:4条记录修复
-  字典类型表:10条记录修复
-  字典数据表:29条记录修复
-  配置表:6条记录修复
- **合计**:63条记录修复 

### 验证方法
```sql
-- 角色表验证
SELECT role_id, role_name FROM sys_role;
-- 预期:超级管理员、普通角色

-- 部门表验证
SELECT dept_id, dept_name FROM sys_dept;
-- 预期:若依科技、深圳总公司、研发部门等

-- 字典表验证
SELECT dict_name FROM sys_dict_type;
-- 预期:用户性别、菜单状态、系统开关等
```

## 预防措施

### 1. 导入SQL时指定字符集
```bash
mysql --default-character-set=utf8mb4 -h... < file.sql
```

### 2. 检查SQL文件编码
```bash
file -I file.sql
# 确保输出:charset=utf-8
```

### 3. 使用修复后的完整SQL
今后建议使用:
- `sql/sys_menu_complete.sql` - 完整菜单数据(已修复字符集)
- `sql/fix_ruoyi_charset.sql` - RuoYi系统表乱码修复

## 相关文件
- sql/fix_ruoyi_charset.sql - RuoYi乱码修复SQL(新增)
- sql/fix_charset.sh - 字符集检查修复工具
- sql/import_menu.sh - 菜单导入脚本(已修复字符集)

---
作者:湖北新华业务中台研发团队
2026-02-01 13:25:14 +08:00
..
fix_admin_permissions.sh fix: 修复管理员角色菜单权限缺失问题 2026-02-01 13:23:44 +08:00
fix_charset.sh fix: 修复MySQL字符集问题,防止中文乱码 2026-02-01 13:21:43 +08:00
fix_ruoyi_charset.sql fix: 修复RuoYi系统表中文乱码问题 2026-02-01 13:25:14 +08:00
import_menu.sh fix: 修复MySQL字符集问题,防止中文乱码 2026-02-01 13:21:43 +08:00
pangu_application.sql feat: 完成所有模块待完成任务和模块集成 2026-01-31 23:31:27 +08:00
pangu_base_data.sql feat: 基础数据模块全栈开发及登录接口 2026-01-31 17:55:58 +08:00
pangu_member.sql chore: 统一更新项目作者信息为湖北新华业务中台研发团队 2026-01-31 23:09:12 +08:00
pangu_menu.sql feat: 基础数据模块全栈开发及登录接口 2026-01-31 17:55:58 +08:00
pangu_school.sql chore: 统一更新项目作者信息为湖北新华业务中台研发团队 2026-01-31 23:09:12 +08:00
pangu_student.sql feat: 系统全面审查与完善 - 达到100% API通过率 2026-02-01 00:19:27 +08:00
quartz.sql docs: 补充墨刀原型批注和示例数据到各文档 2026-01-31 16:58:18 +08:00
ry_20250522.sql chore: 更新RuoYi数据库初始化脚本 2026-01-31 17:01:40 +08:00
sys_menu_complete.sql fix: 更新菜单SQL作者为pangu并修正数据库配置 2026-02-01 13:20:33 +08:00
test_data_101.sql fix: 需求符合性检查并修正关键数据错误 2026-02-01 00:49:32 +08:00
test_data_101.sql.backup fix: 需求符合性检查并修正关键数据错误 2026-02-01 00:49:32 +08:00
test_data_101.sql.bak2 fix: 需求符合性检查并修正关键数据错误 2026-02-01 00:49:32 +08:00
test_data_101.sql.bak3 fix: 需求符合性检查并修正关键数据错误 2026-02-01 00:49:32 +08:00