中文 TXT 文件显示乱码或问号怎么办
根本原因:TXT 没有"自带编码标记"
TXT 是纯文本格式,没有任何元数据标记文件用的是什么编码(不像 EPUB 有 mimetype、XML 声明,DOC 有 OLE 结构)。
所以当 ReadEra 打开一份 TXT 时,它只能"猜"——猜测这份文件是 UTF-8、GBK、GB2312、Big5(繁体中文)、还是其他编码。
猜不对 → 显示乱码或问号。
ReadEra 怎么处理 TXT 编码
ReadEra 打开 TXT 时会:
- 自动尝试 UTF-8(最常见的现代编码)
- 如果 UTF-8 解析失败(遇到非法字节序列)→ 继续尝试其他常见中文编码(GBK、GB2312)
- 如果还是失败 → 尝试其他编码
- 每一步猜完都显示预览,如果显示正确就采用
但自动猜测不是 100% 准确——有些文件即使 ReadEra 尝试了所有中文编码还是猜错。
手动指定编码
如果自动猜测不行,你可以手动强制 ReadEra 用某个编码打开:
- 书架里找到这份乱码的 TXT → 长按 → 点"关于文档"或"编辑元数据"
- 找文件的详细信息页面
- 看有没有"编码"选项(不同版本翻译略有差异)
- 手动改成 UTF-8 → 保存 → 重新打开
手动设置的编码选项
| 编码 | 使用场景 |
|---|---|
| UTF-8 | 2010 年之后保存的 TXT 几乎全是 UTF-8——首选 |
| GBK | Windows 95/98/XP 时代保存的中文 TXT 常见编码 |
| GB2312 | 更早的简体中文编码(GBK 是它的超集,选 GBK 就行) |
| Big5 | 繁体中文 TXT |
| UTF-16 / UTF-16LE / UTF-16BE | 极少数 Windows 保存的 Unicode TXT |
| ASCII | 纯英文 TXT |
手动把 TXT 转成 UTF-8(根治方案)
如果手动指定编码后文件可以正常显示,但你不想每次都手动设置——根本解决方案是把文件转成 UTF-8:
方式一:Windows 记事本
- 右键乱码的 TXT → 打开方式 → 记事本
- 文件 → 另存为
- 底部"编码"下拉框选 UTF-8 或 带 BOM 的 UTF-8
- 保存(可以覆盖原文件或另存新文件)
- 回到 ReadEra → 刷新书架 → 重新打开 → 正常显示
方式二:VS Code / Sublime Text
- 用 VS Code 打开文件
- 右下角显示当前编码(如果显示乱码)→ 点击编码 → "重新打开时使用编码" → 选正确的(GBK 最常见)
- 正常显示后 → 点击编码 → "通过编码保存" → 选 UTF-8 → 保存
方式三:命令行(Windows PowerShell)
如果文件多了可以写批处理,但对少量文件来说上面两种更直接。
转码后的长期建议
把所有 TXT 文件统一转成 UTF-8 格式保存——这是现代应用、跨平台兼容性最好的编码。ReadEra、Moon+、Librera、Google Play Books、各种在线转换工具全部默认 UTF-8。
下次遇到乱码 TXT,先转 UTF-8 再存,一劳永逸。
ReadEra 对 TXT 的其他处理
除了编码问题,ReadEra 对 TXT 还会:
- 自动识别段落:按换行符分段(Windows 的
\r\n和 Linux/macOS 的\n都正确处理) - 自动生成伪目录:如果 TXT 里有"第 X 章 XXX"这种文本,ReadEra 可能会识别出来放进目录里(这个功能不稳定,取决于 TXT 里章节标记的格式)
- 应用排版设置:字号、行距、颜色模式——和 EPUB 一样可调
不是 TXT 编码问题的乱码
还有一种可能:文件本身就是损坏的——下载不完整、文件被病毒篡改、文件扩展名被恶意修改。验证方法:
- 用记事本或 VS Code 打开这份文件 → 看记事本里是不是也乱码
- 如果记事本里也乱码 → 文件本身坏了(重新下载)
- 如果记事本里正常 → 就是 ReadEra 编码猜测的问题(手动指定编码解决)