|
- .版本 2
- .支持库 spec
- .程序集 窗口程序集_启动窗口, , , 易语言 实现字节集的url gb2312编解码 相当于php的 urlencode() 与urldecode() 函数。
- .子程序 __启动窗口_创建完毕
- .局部变量 编码后, 文本型
- 编码后 = URL编码 (到字节集 (“测试内容”), 真)
- 调试输出 (编码后)
- 调试输出 (到文本 (URL解码 (编码后)))
- 结束 ()
- .子程序 URL编码, 文本型, 公开
- .参数 数据, 字节集
- .参数 全编码, 逻辑型, 可空
- .局部变量 返回值, 文本型
- .局部变量 计数, 整数型
- .局部变量 十六进制文本, 文本型
- .局部变量 不编码字符, 文本型
- .局部变量 是否编码, 逻辑型
- .局部变量 计数2, 整数型
- 返回值 = “”
- 十六进制文本 = “0123456789ABCDEF”
- 不编码字符 = “0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz~!@#$%^&*()_+{}|:<>?-=[]\;',./” + #引号
- .计次循环首 (取字节集长度 (数据), 计数)
- 是否编码 = 真
- .如果真 (全编码 = 假)
- .计次循环首 (取文本长度 (不编码字符), 计数2)
- .如果真 (取文本中间 (不编码字符, 计数2, 1) = 取文本中间 (到文本 (数据), 计数, 1))
- 是否编码 = 假
- 跳出循环 ()
- .如果真结束
- .计次循环尾 ()
- .如果真结束
- .如果 (是否编码)
- 返回值 = 返回值 + “%” + 取文本中间 (十六进制文本, 右移 (数据 [计数], 4) + 1, 1) + 取文本中间 (十六进制文本, 位与 (数据 [计数], 15) + 1, 1)
- .否则
- 返回值 = 返回值 + 到文本 (取字节集中间 (数据, 计数, 1))
- .如果结束
- .计次循环尾 ()
- 返回 (返回值)
- .子程序 URL解码, 字节集, 公开
- .参数 文本, 文本型
- .局部变量 十六进制文本, 文本型
- .局部变量 高字节计数, 整数型
- .局部变量 低字节计数, 整数型
- .局部变量 字节值, 字节型
- .局部变量 字节集, 字节集
- 字节集 = 到字节集 (文本)
- 十六进制文本 = “0123456789ABCDEF”
- .计次循环首 (16, 高字节计数)
- .计次循环首 (16, 低字节计数)
- 字节集 = 子字节集替换 (字节集, 到字节集 (“%” + 到小写 (取文本中间 (十六进制文本, 高字节计数, 1)) + 到小写 (取文本中间 (十六进制文本, 低字节计数, 1))), 到字节集 (字节值), , )
- 字节集 = 子字节集替换 (字节集, 到字节集 (“%” + 到小写 (取文本中间 (十六进制文本, 高字节计数, 1)) + 取文本中间 (十六进制文本, 低字节计数, 1)), 到字节集 (字节值), , )
- 字节集 = 子字节集替换 (字节集, 到字节集 (“%” + 取文本中间 (十六进制文本, 高字节计数, 1) + 到小写 (取文本中间 (十六进制文本, 低字节计数, 1))), 到字节集 (字节值), , )
- 字节集 = 子字节集替换 (字节集, 到字节集 (“%” + 取文本中间 (十六进制文本, 高字节计数, 1) + 取文本中间 (十六进制文本, 低字节计数, 1)), 到字节集 (字节值), , )
- 字节值 = 字节值 + 1
- .计次循环尾 ()
- .计次循环尾 ()
- 返回 (字节集)
复制代码
|
|