我正在尝试将用希伯来语编写的电子邮件的“主题”字段编码为 Base64,以便可以在所有浏览器中正确阅读主题。目前,我正在使用编码 Windows-1255,它适用于某些客户端但不是全部,所以我想使用 utf-8、base64。
我对这个主题的阅读(没有双关语)表明文本必须是形式
=?<charset>?<encoding>?<encoded text>?=
例如
=?windows-1255?Q?=E0=E1?=
我从使用 UTF-8B 编码的希伯来语发送给我的信件中提取了编码的主题行,并在这个网站 www.webatic.com/run/convert/base64.php 上成功解码了它们。我还使用这个网站对简单字母进行编码,并注意到返回编码与我从 Delphi 算法得到的结果不同。
所以 - 我正在寻找一种成功编码字母的算法,例如 aleph (ord=224)、bet (ord=225) 等。根据网站,由两个字母 aleph 和 bet 组成的字符串返回代码 15DXkq= =,但基本的 Delphi 算法返回 Ue4,而 TIdEncoderQuotedPrintable 组件返回 =E0=E1(这是 ISO-8859 编码)。
编辑(经过几条评论):
我让一个朋友从她的 Mac 电脑上给我发一封电子邮件,这并不奇怪,它使用 UTF-8 编码(而不是 Windows-1255)。主题是一个字母,aleph,ord 224。编码的主题出现在电子邮件的标题中,如下所示
=?UTF-8?B?15A=?=
这可以分为三个部分: '前缀' (=?UTF-8?B?),这意味着正在使用带有 base64 编码的 UTF-8;'有效负载'(15A =),我引用的网站将其正确翻译为字母aleph;和后缀 (?=)。
我需要一种算法来将任意字符串翻译,其中大部分将是希伯来语(因此使用 ord >= 224)到 base64/utf-8;正确的解决方案是在引用的网站上正确解码。