線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1889
推到 Plurk!
推到 Facebook!

Mail 主旨有兩行造成解碼問題

答題得分者是:sryang
schang
一般會員


發表:7
回覆:6
積分:2
註冊:2018-09-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2019-02-18 14:26:49 IP:60.250.xxx.xxx 未訂閱
大家好,最近在做收信的程式,
覺得解碼真的是一個大挑戰。

當我在收信時出現錯誤「Uneven size in DecodeToStream.」,
於是我去查看信件的原始碼,
一般來講主旨只有一行,
但這封信的有兩行,展示如下
(因隱私問題故將原始內容英文字母的地方用AAA代替,Unicode的部分都以X代替)
Subject: AAA =?UTF-8?B?XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX?=
_=?UTF-8?B?XXXX?=
(黃色的是一個空格)

一模一樣的信件我用Big5寄,主旨只有一行,這是沒問題的
Subject: AAA =?Big5?B?XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX?=

由於解碼是要解「=?UTF-8?B?」之後的東西,
但他長這樣我不知道要怎麼解,請大家幫幫忙。
編輯記錄
schang 重新編輯於 2019-02-18 14:55:16, 註解 無‧
schang 重新編輯於 2019-02-18 16:10:10, 註解 無‧
sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2019-02-21 14:37:03 IP:59.127.xxx.xxx 未訂閱
=?UTF-8?B?xxxxxxxxx內容xxxxxxxx?=
用 ? 分隔之後,第一項是 UTF-8,表示原始內容是 UTF-8 編碼
第二項是 B,表示是 Base64 編碼
所以就是把第三個 ? 到最後的 ?= 之間的內容解 Base64 就能得到 UTF-8 的內容

詳情請參考這裡
https://dmorgan.info/posts/encoded-word-syntax/
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
schang
一般會員


發表:7
回覆:6
積分:2
註冊:2018-09-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2019-02-27 10:18:35 IP:60.250.xxx.xxx 未訂閱
謝謝您的回覆,我最終是用最笨的方式。
因為前面的AAA不需解碼,
所以我先將字串的「換行符號」取代掉,成為一行,
再以AAA切割成兩個字串,
再將第二個字串中的「=?UTF-8?B?」和「?=」取代掉,再解碼,
最後再組合起來這樣就可以了。

===================引 用 sryang 文 章=================== =?UTF-8?B?xxxxxxxxx內容xxxxxxxx?=
用 ? 分隔之後,第一項是 UTF-8,表示原始內容是 UTF-8 編碼
第二項是 B,表示是 Base64 編碼
所以就是把第三個 ? 到最後的 ?= 之間的內容解 Base64 就能得到 UTF-8 的內容

詳情請參考這裡
https://dmorgan.info/posts/encoded-word-syntax/
系統時間:2024-04-29 6:51:51
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!