mirror of
https://github.com/GSManagerXZ/GameServerManager.git
synced 2025-11-29 17:10:29 +08:00
99 lines
2.3 KiB
Markdown
99 lines
2.3 KiB
Markdown
# 文件编码检测与转换功能
|
||
|
||
## 功能说明
|
||
|
||
本次更新为文件管理的文本编辑器添加了以下功能:
|
||
|
||
### 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
|
||
|