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