3.2      Quoted printable 編碼

         QP 編碼用于表示含有大量對應可打印字符的數組,這種編碼方式使字符單元在傳輸過程中被更改的可能性很小。如果正在編碼的數據大部分是ASCII文本,那么編碼后的形式具有很高的可讀性。一個完全是ASCII值的正文數據由QP編碼后可以保證數據在字符翻譯或經由網關時數據的完整性。

       編碼規則如下:

       規則1(一般8位組的表示方式), 任何的八位組,都可以用”=”后加該八位組的16進制值來表示,除了那些根據數據編碼規范中新行的慣例來指定短行的表示單位。必須用大寫字母。比如值是12 ,則表示為”=0C”

       規則2(文字表示)值在33-60 ,以及62-126的八位組(包含頭尾值),可以表示成那些八位組對應的ASCII字符。

       規則3(空格) 值是932的八位組可以分別表示為ASCII TABSPACE值,但是不可以出現在編碼行的末尾。任何在編碼行的TABSPACE字符必須后面有可打印字符出現。特殊情況下,編碼行的末尾出現的”=”,表示斷行,其前面可能是一個或多個TABSPACE 實行這條規則的原因是一些METs(Message Transport Agents-消息傳輸單元)會在文本末尾補上SPACE,因此,解碼時,任何跟在行后的空格必須刪除。

       規則4(斷行)在原文中的斷行必須表示成協議中的斷行符-CRLF序列"=0D=0A” 。由于非文本類型的規范表示一般不包括斷行,所以這種類型的qp編碼沒有硬換行。通常,base64編碼在二進制編碼上更占優勢。

       規則5(軟換行)QP編碼要求編碼后每行不能超過76個字符。當超過這個限制時,將適用軟換行,用”=”表示編碼行的斷行,后接CRLF。(76的限制包括”=”)。