解码 =?ISO-2022-JP?B?…?= 之类的 MIME 编码

一个显示成 =?ISO-2022-JP?B?GyRC…?= 的日文主题行没有损坏 —— 它只是套着传输用的编码外壳。这个工具把这层外壳脱掉,需要的时候也能帮你重新套上。

正在加载工具……

工作原理

  1. 粘贴邮件头、正文部分,或者单独一个 =?…?= 编码字。
  2. 按“Decode”(解码);每个编码字都会连同它的字符集一起列出来。
  3. 要反过来编码,就在下面的编码框里输入文字。

为什么什么都不用上传

这个页面上的每一步操作,都由运行在你浏览器标签页里的代码完成,用的就是渲染网页的那套引擎。文件从磁盘读进标签页的内存,在那里被处理,再作为下载写回去。它不会被送到任何地方 —— 不会送给我们,也不会送给第三方。

自己动手验证

  1. 打开浏览器的开发者工具(F12),选择“网络”(Network)面板。
  2. 载入你的文件,运行这个工具。
  3. 你能看到的请求只有这些:工具自己的代码 —— 少数几个重型工具还会从公共 CDN 取它们的开源引擎 —— 外加一条发往 loreatec.jp 的小小访问记录(页面地址和标题,仅此而已)。没有一条带着你的文件。

文件不外传的证明 →

常见问题

什么是编码字(encoded word)?

按最初的标准,邮件头只能使用 ASCII 字符。RFC 2047 想出的办法是把非 ASCII 文字包进 =?字符集?编码方式?文字?= 这样的结构里,编码方式是 B(base64)或 Q(quoted-printable 的一种变体)。每个邮件客户端在显示前都会自动解码,这就是为什么你平时根本看不到它 —— 除非有什么东西把原始邮件头展示给你看。

现在还应该用 ISO-2022-JP 吗?

对于发给日本手机运营商和真正老旧系统的邮件头,它依然是最安全的选择。但它没法表示 ①、㈱、~,也没法表示人们从 Word 里粘贴过来的大半符号,以及任何表情符号(emoji):这些内容会变成问号,或者干脆消失。UTF-8 能承载所有内容,而且现在包括三大运营商在内的每一个现代收件方都能接受它。

为什么编码功能只提供 UTF-8?

因为浏览器能解码 ISO-2022-JP、Shift_JIS 和 EUC-JP,却没法编码成这些格式 —— TextEncoder 只能生成 UTF-8。如果提供这些选项,却悄悄地始终返回 UTF-8,那正是这个工具存在的目的所要揭穿的那种“悄悄出错”。解码功能则支持全部这些字符集。

该用 B 还是 Q?

日文选 B:用 Q 的话几乎每个字节都要转义,所以 base64 编码出来反而更短。以拉丁字母为主、偶尔带几个重音符号的文字,用 Q 能让邮件头保持可读,在你直接查看原始源码时会更方便。