求教,“=B9=A4=D7=F7=BC=F2=B1=A8” 這種是什麼編碼方式?
Quoted-printable 可譯為“可列印字元引用編碼”、“使用可列印字元的編碼”,我們收郵件,檢視信件原始資訊,經常會看到這種類型的編碼!
它是多用途網際網路郵件擴充(MIME) 一種實作方式。其中MIME是一個網際網路标準,它擴充了電子郵件标準,緻力于使其能夠支援非ASCII字元、二進制格式附件等多種格式的郵件消息。目前http協定中,很多采用MIME架構!quoted-printable 就是說用一些可列印常用字元,表示一個位元組(8位)中所有非列印字元方法!
Quoted-printable編碼方法
任何一個8位的位元組值可編碼為3個字元:一個等号”=”後跟随兩個十六進制數字(0–9或A–F)表示該位元組的數值.例如,ASCII碼換頁符(十進制值為12)可以表示為”=0C”, 等号”=”(十進制值為61)必須表示為”=3D”. 除了可列印ASCII字元與換行符以外,所有字元必須表示為這種格式. 所有可列印ASCII字元(十進制值的範圍為33到126)可用ASCII字元編碼來直接表示, 但是等号”=”(十進制值為61)不可以這樣直接表示.ASCII的水準制表符(tab)與空格符, 十進制為9和32, 如果不出現在行尾則可以用其ASCII字元編碼直接表示。如果這兩個字元出現在行尾,必須QP編碼表示為”=09″ (tab)或”=20″ (space). 如果資料中包含有意義的行結束标志,必須轉換為ASCII回車(CR)換行(LF)序列,既不能用原來的ASCII字元也不能用QP編碼的”=”轉義字元序列。 相反,如果位元組值13與10有其它的不是行結束的含義,它們必須QP編碼為=0D與=0A. quoted-printable編碼的資料的每行長度不能超過76個字元. 為滿足此要求又不改變被編碼文本,在QP編碼結果的每行末尾加上軟換行(soft line break). 即在每行末尾加上一個”=”, 但并不會出現在解碼得到的文本中. 例如:If you believe that truth=beauty, then surely mathematics is the most beautiful branch of philosophy. 編碼後結果是
編碼裡面,有幾個特定限定,一些可列印字元不用編碼,當然如果你按照規範編碼後,也一樣可以顯示的!是以自己簡單自己實作該編碼:
一個函數就可以,将所有字元串urlencode轉換後,%号替換為”=”号,然後對非\r\n超過73連續字元,後面加一個=\r\n。這個是簡單實作方法! 按照該編碼詳細說明裡面,有些空格、換行,還有一些特殊字元可以不用轉換。不過一起轉換了,也不會有影響!
很多時候,我們用些常見字元表示所有8位其它非列印字元,這種通過,Quoted-printable編碼,隻是對該位元組轉為16進制後,做簡單增加字首!然後做些特殊字元處理即可! 它的簡單,及編碼高效,也讓該編碼在郵件格式裡面,得到了廣泛使用!好了,就到這裡,歡迎交流!
暫無相關文章!

本文轉自茄子_2008部落格園部落格,原文連結:http://www.cnblogs.com/xd502djj/p/4290470.html,如需轉載請自行聯系原作者。