readera 中文文档 下载 App

中文 TXT 文件显示乱码或问号怎么办

根本原因:TXT 没有"自带编码标记"

TXT 是纯文本格式,没有任何元数据标记文件用的是什么编码(不像 EPUB 有 mimetype、XML 声明,DOC 有 OLE 结构)。

所以当 ReadEra 打开一份 TXT 时,它只能"猜"——猜测这份文件是 UTF-8、GBK、GB2312、Big5(繁体中文)、还是其他编码。

猜不对 → 显示乱码或问号。

ReadEra 怎么处理 TXT 编码

ReadEra 打开 TXT 时会:

  1. 自动尝试 UTF-8(最常见的现代编码)
  2. 如果 UTF-8 解析失败(遇到非法字节序列)→ 继续尝试其他常见中文编码(GBK、GB2312)
  3. 如果还是失败 → 尝试其他编码
  4. 每一步猜完都显示预览,如果显示正确就采用

但自动猜测不是 100% 准确——有些文件即使 ReadEra 尝试了所有中文编码还是猜错。

手动指定编码

如果自动猜测不行,你可以手动强制 ReadEra 用某个编码打开:

  1. 书架里找到这份乱码的 TXT → 长按 → 点"关于文档"或"编辑元数据"
  2. 找文件的详细信息页面
  3. 看有没有"编码"选项(不同版本翻译略有差异)
  4. 手动改成 UTF-8 → 保存 → 重新打开

手动设置的编码选项

编码使用场景
UTF-82010 年之后保存的 TXT 几乎全是 UTF-8——首选
GBKWindows 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 记事本

  1. 右键乱码的 TXT → 打开方式 → 记事本
  2. 文件 → 另存为
  3. 底部"编码"下拉框选 UTF-8 或 带 BOM 的 UTF-8
  4. 保存(可以覆盖原文件或另存新文件)
  5. 回到 ReadEra → 刷新书架 → 重新打开 → 正常显示

方式二:VS Code / Sublime Text

  1. 用 VS Code 打开文件
  2. 右下角显示当前编码(如果显示乱码)→ 点击编码 → "重新打开时使用编码" → 选正确的(GBK 最常见)
  3. 正常显示后 → 点击编码 → "通过编码保存" → 选 UTF-8 → 保存

方式三:命令行(Windows PowerShell)

如果文件多了可以写批处理,但对少量文件来说上面两种更直接。

转码后的长期建议

把所有 TXT 文件统一转成 UTF-8 格式保存——这是现代应用、跨平台兼容性最好的编码。ReadEra、Moon+、Librera、Google Play Books、各种在线转换工具全部默认 UTF-8。

下次遇到乱码 TXT,先转 UTF-8 再存,一劳永逸。

ReadEra 对 TXT 的其他处理

除了编码问题,ReadEra 对 TXT 还会:

不是 TXT 编码问题的乱码

还有一种可能:文件本身就是损坏的——下载不完整、文件被病毒篡改、文件扩展名被恶意修改。验证方法:

  1. 用记事本或 VS Code 打开这份文件 → 看记事本里是不是也乱码
  2. 如果记事本里也乱码 → 文件本身坏了(重新下载)
  3. 如果记事本里正常 → 就是 ReadEra 编码猜测的问题(手动指定编码解决)