GameServerManager/docs/编码检测功能说明.md
2025-10-15 21:07:39 +08:00

99 lines
2.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 文件编码检测与转换功能
## 功能说明
本次更新为文件管理的文本编辑器添加了以下功能:
### 1. 编码检测
- 自动检测文件的字符编码UTF-8, UTF-16, GBK, Big5等
- 显示检测置信度
- 识别不兼容的编码格式
### 2. UTF-16 编码支持
- 完整支持 UTF-16LE/UTF-16BE 编码
- 自动转换 UTF-16 到 UTF-8
### 3. 编码转换确认对话框
- 当检测到不兼容编码时自动弹出
- 提供清晰的警告信息和建议
- 符合面板风格的美观设计
## 使用说明
### 安装依赖
在使用前,需要安装新的依赖包:
```bash
# 进入服务端目录
cd server
# 安装依赖
npm install
# 或者使用 package-lock.json
npm ci
```
### 功能使用
1. **打开文件时**
- 系统会自动检测文件编码
- 如果检测到不兼容的编码如UTF-16会弹出确认对话框
2. **编码转换**
- 点击"转换为 UTF-8"按钮:文件将被转换为 UTF-8 编码并打开
- 点击"取消"按钮:建议下载文件到本地使用专业编辑器编辑
3. **警告提示**
- 转换编码后可能会造成运行的服务端无法读取文件
- 建议您可以将文件下载后编辑上传
## 技术实现
### 后端更新
1. **新增依赖**
- `jschardet`: 字符编码检测库
- `iconv-lite`: 编码转换库
2. **API 更新**
- `GET /api/files/read-content`: 添加编码检测功能
- `POST /api/files/save`: 支持指定编码保存
### 前端更新
1. **新组件**
- `EncodingConfirmDialog.tsx`: 编码确认对话框
2. **更新组件**
- `FileManagerPage.tsx`: 添加编码检测逻辑
- `fileStore.ts`: 更新文件打开/保存方法
- `fileApi.ts`: 更新API调用
- `file.ts`: 更新类型定义
## 支持的编码格式
- UTF-8 ✓
- UTF-16 (LE/BE) ✓
- GBK / GB2312 ✓
- Big5 ✓
- ASCII ✓
- 其他常见编码 ✓
## 注意事项
1. 编码转换是不可逆的操作,建议在转换前备份重要文件
2. 某些特殊字符可能在转换过程中丢失
3. 如果文件被游戏服务器或其他程序使用,转换编码可能导致读取失败
4. 建议使用下载+本地编辑+上传的方式处理重要配置文件
## 动画效果
- 弹窗使用淡入淡出动画(符合设计规范)
- 平滑的打开和关闭过渡效果
## 完成日期
2025-10-15