我正在尝试找出文本文件的编码。我尝试了很多常用方法(使用 Notepad++),但到目前为止都失败了。
一些提示:该文件最初是一个 Eudora mbx 文件,主要包含法语内容。它大约可以追溯到 1998 年,可能来自 MacOS 版本的 Eudora。非 ASCII 编码为单字节:
- 0x82 是
- 0x87 是
- 0xc1 是 ç
- 0xc8 是
- 0xcb 是è
- 0xcd 是 ê
换行符编码为 0x0d 0x0a。
我可以搜索/替换它们全部,但是......
编辑:回答评论中的问题:
file--mime-encoding
报告unknown-8bit
,file --mime-type
报告text/plain
,file
报告Non-ISO extended-ASCII text, with very long lines (370), with CRLF line terminators
。- 没有文件头 - 文件的开头是文本的开头(
From ???@???
,这是 Eudora mbx 文件中的标准电子邮件头)。 - 我可以在 MacOS 14.x、MacOS 7.6.1(在 BasiliskII 上)、Debian 12.4、Windows 10 和 Windows XP 上进行测试。默认情况下,这些系统均未使用正确的字符集。
另一项编辑:仔细查看后,这个文件包含大约 300 封连续的电子邮件,它们使用了至少两种不同的编码,这解释了差异。这是我目前对整个集合的猜测,但我可能无法在整个集合中进行搜索和替换。
81 '°' (degree)
82 'â'
83 'ü'
84 'ã'
85 'É'
86 '"'
87 'à'
88 'ö'
89 'ä'
90 '•'
92 '''
97 Line feed ?
9a 'ß'
a0 ' ' (non-breakable?)
aa '”' (balancing with b4)
ab 'Ç'
b0 '°'
b1 '~'
b4 '“" (balancing with aa)
b7 'á'
b8 'ü'
bb 'é' 'È'
bc 'ù'
bf 'À'
c0 'À'
c1 'ç'
c8 'é'
c9 'É'
cb 'è'
cc 'í'
cd 'ê'
d0 'õ'
d3 'î'
d4 'ï'
d7 'û'
d9 'ô'
db 'ó'
dd 'ú'
e0 'à'
e2 'â'
e7 'ç'
e8 'è'
e9 'é'
ea 'ê'
ed '''
ee 'î'
ef 'ï'
f4 'ô'
f9 'ù'
fb 'û'
fc 'ü'
fe '''
答案1
安装 Python(例如从 Microsoft Store 安装),然后pip install chardet
,您应该有chardetect
命令或至少python -m chardet
。它将执行统计分析以猜测最可能的字符集。
python -m chardet somefile.txt
一些提示:该文件最初是一个 Eudora mbx 文件,主要包含法语内容。它的历史可以追溯到 1998 年左右,可能来自 MacOS 版本的 Eudora。非 ASCII 编码为单字节:
那么可能不会有单一编码;它可能是几种不同编码的消息的混合。您需要对每条消息分别执行字符集检测。