加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

有没有办法在Ruby中解码q编码的字符串?

发布时间:2020-12-17 03:58:06 所属栏目:百科 来源:网络整理
导读:我正在使用邮件,名称和主题有时会进行q编码,如下所示: =?UTF-8?Q?J=2E_Pablo_Fern=C3=A1ndez?= 有没有办法在Ruby中解码它们?似乎TMail应该照顾它,但它没有这样做. 解决方法 我用它来解析电子邮件主题: 您可以尝试以下方法: str = "=?UTF-8?Q?J=2E_Pablo_
我正在使用邮件,名称和主题有时会进行q编码,如下所示:

=?UTF-8?Q?J=2E_Pablo_Fern=C3=A1ndez?=

有没有办法在Ruby中解码它们?似乎TMail应该照顾它,但它没有这样做.

解决方法

我用它来解析电子邮件主题:

您可以尝试以下方法:

str = "=?UTF-8?Q?J=2E_Pablo_Fern=C3=A1ndez?="
if m = /=?([A-Za-z0-9-]+)?(B|Q)?([!->@-~]+)?=/i.match(str)
        case m[2]
        when "B" # Base64 encoded
          decoded = Base64.decode64(m[3])
        when "Q" # Q encoded
          decoded = m[3].unpack("M").first.gsub('_',' ')
        else
          p "Could not find keyword!!!"
        end
        Iconv.conv('utf-8',m[1],decoded) # to convert to utf-8
end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读