|
发表于 2016-9-27 11:38:25
|
显示全部楼层
广东省东莞市
.版本 2
.子程序 QP编码, 字节集, 公开, 用于Quoted-Printable编码、URL编码
.参数 原文, 字节集, , 要进行编码的字节集
.参数 编码类型, 逻辑型, 可空, 真为URL,假为QP,默认为QP
.局部变量 原文长度, 整数型
.局部变量 i, 整数型
.局部变量 结果, 字节集
.局部变量 j, 整数型
.局部变量 新码表, 字节型, , "256,2"
.局部变量 临时字节, 字节型
.局部变量 码表, 字节集
.局部变量 url
原文长度 = 取字节集长度 (原文)
.如果真 (原文长度 < 1)
返回 ({ })
.如果真结束
码表 = { 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70 }
.如果 (编码类型)
url = 37
.否则
url = 61
.如果结束
.变量循环首 (0, 255, 1, i)
新码表 [i + 1] [1] = 码表 [右移 (i, 4) + 1]
新码表 [i + 1] [2] = 码表 [位与 (i, 15) + 1]
.变量循环尾 ()
结果 = 取空白字节集 (原文长度 × 3)
j = 1
.变量循环首 (1, 原文长度, 1, i)
临时字节 = 原文 [i]
结果 [j] = url
结果 [j + 1] = 新码表 [临时字节 + 1] [1]
结果 [j + 2] = 新码表 [临时字节 + 1] [2]
j = j + 3
.变量循环尾 ()
返回 (结果)
.子程序 QP解码, 字节集, 公开, 用于Quoted-Printable解码,也可用来解码URL
.参数 原文, 字节集, , 要进行解码的字节集
.局部变量 长度, 整数型
.局部变量 i, 整数型
.局部变量 结果, 字节集
.局部变量 j
.局部变量 新码表, 字节型, , "70,70"
.局部变量 码表, 字节集
长度 = 取字节集长度 (原文)
.如果真 (长度 < 1)
返回 ({ })
.如果真结束
码表 = { 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70 }
.变量循环首 (0, 15, 1, i)
.变量循环首 (0, 15, 1, j)
新码表 [码表 [i + 1]] [码表 [j + 1]] = 左移 (i, 4) + j
.变量循环尾 ()
.变量循环尾 ()
结果 = 取空白字节集 (长度 ÷ 3)
j = 1
.变量循环首 (2, 长度 - 1, 3, i)
结果 [j] = 新码表 [原文 [i]] [原文 [i + 1]]
j = j + 1
.变量循环尾 ()
返回 (结果)
可行的话就拿烟钱............................. |
评分
-
参与人数 1 | 荣誉 +1 |
收起
理由
|
笨潴
| + 1 |
热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻! |
查看全部评分
|