我本來用 Apple 的 Macbook AIR 收信, 最近改成 Surface Book 2. 原本收到其他同仁用 Apple Macbook 寄出來的加密信件, 在 Apple 上直接用 Apple Mail 加上插件就可以看到解密後的郵件, 相當地方便! 但換到 Windows 底下就變亂碼了, 這件事有點麻煩, 所以花了點時間解決.
首先 Kleopatra 解密軟體是無辜的, 它只是忠實地解開 PGP key. 編輯器也是無辜的, 這並不是 UTF-8 誤設成 Big 5 這類的問題. 不然用 Word 裡面選擇編碼的功能就能挑出對的那個編碼方式.
我這次遇到的是郵件變成了有很多等於符號的亂碼, 例如 =8E=BB=E5=A6=82=E6=9E=9C…, 這該怎麼辦呢? 這種很多 “等於" 的亂碼是 Quoted-printable (QP) 編碼, 中文是 “可打印字符引用編碼". 也就是可以把任何編碼的文字變成可以印出來的 ASCII 字元. 解密完的 mail 中也可以看到這些字樣:
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=utf-8
Apple 的電腦預設都是用 UTF-8 編碼寄出, 但是後續又被 quoted-printable 轉了一次. 解密軟體只負責解到 quoted-printable, 加上 Outlook 不像 Apple Mail 多了一道解 QP 的動作, 因此才會出現亂碼.
解決之道, 可以自己寫一個解 QP 的程式, 例如這位勇者仁兄 [1], 或者是到善心人士的網站上去轉 [2]. 這個網站還提供了很多轉來轉去的工具, 有需要的人可以做成書籤來備用. 另外有一個網站 [3] 提示了幾種亂碼的類型, 看到不同的亂碼就知道這是哪一類的問題. 基本上 unicode 就是 &# 開頭, 因此文件中一定會有很多 &#.
幸虧有這些亂碼終結者, 我們才能有效率地解決網路上怪怪的相容性問題. 在此也感謝他們的貢獻!
[Note]