ServerBox 编码转换工具如何处理不同字符集的文件
什么时候需要编码转换
服务器上经常遇到中文乱码:
- Windows 生成的文本文件传到 Linux 上显示乱码(GBK vs UTF-8)
- 旧数据库导出的 SQL 文件是 GB2312 编码
- 日志文件里有不同编码混在一起
ServerBox 的编码转换工具可以快速在常见编码之间互转,避免去敲 iconv 命令。
支持的编码
ServerBox 支持以下常见编码:
| 编码 | 常见场景 |
|---|---|
| UTF-8 | Linux / macOS 默认,Web 标准 |
| GBK / GB2312 | Windows 中文默认 |
| ISO-8859-1 | 老系统和某些数据库 |
| Shift-JIS | 日文系统 |
| Big5 | 繁体中文 |
| UTF-16 / UTF-32 | 特殊场景 |
使用方法
- 打开 SFTP → 找到要转换的文件
- 右键文件 → 编码转换
- 选择源编码(不知道就先试自动检测,不行再手动选)
- 选择目标编码(通常选 UTF-8)
- 转换 → 选择覆盖原文件或另存为新文件
⚠️ 建议选另存为新文件先试,确认转换正确后再替换原文件——转错了源编码可能把文件彻底弄坏。
自动检测靠谱吗
ServerBox 内置了常见编码的自动检测算法,但不是 100% 准确,尤其是纯 ASCII 内容(所有编码都一样)或小文件。如果自动检测后还是乱码:
- 打开文件看有没有明显的乱码特征
- 尝试手动选不同编码转
- 或者去 SSH 终端用
file -i <文件>查一下:
$ file -i old-sql-file.sql
old-sql-file.sql: text/x-sql; charset=gbk
这个命令的输出比自动检测准,建议转之前先 file 一下。
和命令行 iconv 的关系
ServerBox 的编码转换底层执行的就是 iconv:
| ServerBox 操作 | 命令行等价 |
|---|---|
| GBK → UTF-8 另存为 | iconv -f gbk -t utf8 input.sql -o input-utf8.sql |
| 覆盖原文件 | iconv -f gbk -t utf8 input.sql -o input.sql.tmp && mv input.sql.tmp input.sql |
批量转换
如果有一批同编码的文件要转:
- 选中所有文件
- 批量编码转换
- ServerBox 会逐个处理,进度实时显示
批量转之前先拿一个文件手动试一下效果,确认方向对了再全量跑。