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

2.3 KiB
Raw Permalink Blame History

文件编码检测与转换功能

功能说明

本次更新为文件管理的文本编辑器添加了以下功能:

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

功能使用

  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