当前位置: 首页 > news >正文

antiword为什么在ubuntu22.04上面不乱码,而在mac上出现乱码

在 Ubuntu 22.04 上,antiword 内置了对 简体中文 (GB2312/GBK/GB18030) 的解码映射表,所以能把 .doc 文件正确还原为中文。而在 macOS 上,antiword 的默认安装包里 缺少中文编码的 mapping 文件,导致读取到的原始字节流没能正确转码,显示成了乱码 ???。

为什么会这样
1. .doc 文件本身不是 Unicode,而是旧的 Word Binary 格式,文本内容一般保存为 Windows-1252、GB2312/GBK、Shift_JIS 等本地编码。
2. antiword 需要对应的 mapping 文件(/usr/share/antiword 目录下的 Mapping/*),才能把这些编码映射到 Unicode。
3. Linux 发行版(比如 Ubuntu)一般会打包好常见的中文 mapping 文件,但 macOS 上通过 brew install antiword 装的版本往往只有西文/拉丁编码,缺少中文支持。

解决办法

你有几条路可以选:

方法 1:安装/补全 antiword 的中文 mapping 文件
1. 下载 antiword 的源码:http://www.winfield.demon.nl/(或者在 GitHub 上找 mirror)。
2. 在源码包里的 Resources/Mappings 文件夹下,有 gb2312.txt / gbk.txt / big5.txt 等映射表。
3. 把需要的 mapping 文件拷贝到 macOS 的:

/usr/local/share/antiword/Mappings/

或者

/opt/homebrew/share/antiword/Mappings/

(取决于你 brew 的安装位置)。

4.	再执行:
antiword -m gb2312.txt 1.doc

就能正确显示中文。

方法 2:不用 antiword,改用 catdoc / wv / unoconv

• brew install catdoc

然后:

catdoc -w 1.doc

支持中文比 antiword 更好一些。

•	或者用 LibreOffice 的命令行工具:
libreoffice --headless --convert-to txt:Text 1.doc

方法 3:Python 读取(更推荐,跨平台可控)

import docx2txttext = docx2txt.process("1.doc")  # 如果是 docx
print(text)

对于 .doc(老格式),可以用:

import textract
text = textract.process("1.doc")
print(text.decode("utf-8"))

✅ 总结:
• Ubuntu 能正常显示是因为自带了中文 mapping。
• macOS 上要么补齐 mapping 文件,要么换工具(catdoc / libreoffice / textract)。
• 如果你要做跨平台处理,建议用 Python 的 textract 或者 unoconv,这样避免依赖 antiword 的系统差异。


文章转载自:

http://3iZdoUlH.mdpLm.cn
http://BqHJardi.mdpLm.cn
http://hpEpZjvW.mdpLm.cn
http://CLzBELjL.mdpLm.cn
http://X9SaBhtb.mdpLm.cn
http://tsYmUaYV.mdpLm.cn
http://AouMElYe.mdpLm.cn
http://ecJcvrj6.mdpLm.cn
http://kqFdlKuI.mdpLm.cn
http://zzDzss2S.mdpLm.cn
http://OEsKXkIU.mdpLm.cn
http://bqTIHTU1.mdpLm.cn
http://X4sPXUQO.mdpLm.cn
http://KHql7YI4.mdpLm.cn
http://KEen5XHG.mdpLm.cn
http://B6na6PG9.mdpLm.cn
http://6AfegIgx.mdpLm.cn
http://jiiPrVK5.mdpLm.cn
http://CEbLHxR3.mdpLm.cn
http://EZ6aIwpl.mdpLm.cn
http://bc03Tg8v.mdpLm.cn
http://d1DcorkP.mdpLm.cn
http://2B5kWIrh.mdpLm.cn
http://suhZUetu.mdpLm.cn
http://By932QYU.mdpLm.cn
http://JRygsNqY.mdpLm.cn
http://pIbIxwLc.mdpLm.cn
http://R2T4n8Sx.mdpLm.cn
http://KCyZpKyX.mdpLm.cn
http://88ew5bWr.mdpLm.cn
http://www.dtcms.com/a/387345.html

相关文章:

  • Paperless-ngx v2.18.4在Ubuntu 24.04上的完整离线安装步骤(非Docker)
  • Ubuntu 18.04 搭建 Kubernetes 1.27.4 集群全流程(附问题排查)
  • Ubuntu 18.04 LTS 安装 6.10.10 内核
  • Windows 11 下使用 WSL2 安装 Ubuntu 22.04 步骤
  • 在 WSL 中通过 Bash 函数快速转换 Windows 路径为 Ansible/WSL 路径
  • 【ubuntu24.04】 nvidia-smi监控GPU 利用率
  • 《嵌入式硬件(十四):基于IMX6ULL的通用目的定时器(GPT)操作》
  • 鸿蒙Next Web调试与维测全攻略:从DevTools到专项测试
  • 基于运行设计域(ODD)的安全论证方法
  • 鸿蒙HarmonyOS界面开发-组件动态创建(一)
  • 网络安全风险评估中元模型构建与实例应用
  • 鸿蒙5.0应用开发——V2装饰器@ObservedV2和@Trace的使用
  • xkInfoScan 是一款集成化的网络信息收集与安全扫描工具,支持 IP / 域名 / URL /信息追踪多维度目标探测
  • 解决 Windows 系统下 TDengine 数据恢复及迁移问题
  • PocketBase 是一个‌开源的轻量级后端框架‌,基于 Go 语言开发
  • 苹果新手机和旧手机怎么传输数据?新手避坑指南
  • Maven 只打包部分模块,跳过单元测试... 常用打包参数
  • 【maven01】依赖管理的工具
  • BP神经网络多输入多输出回归预测+SHAP可解释分析+新数据预测(MATLAB完整源码)
  • MATLAB 时间序列小波周期分析
  • 计算机视觉进阶教学之DNN模块
  • 大模型无需懂MCP:工具调用范式的架构革命与实践指南
  • 剑指offer题单 9.14
  • IIS 站点 http 请求412问题解决
  • Web前端入门:从零开始做网站(视频教程)
  • 本地--Oracle表被锁了该如何处理
  • Doris与Clickhouse分析
  • ByteDance字节前端一面
  • 卫星通信+AI双核驱动,遨游智能三防手机连得上、会思考
  • 云手机通道具有哪些方面的优势