|
第一个是长度第二个不知道这两个位置是怎么算出来的
E7899B长度是6E7899BE7899B12,怎么第一个是7第二个是10呢
补充内容 (2016-9-2 11:38):
.版本 2
.子程序 转换编码_集, 文本型
.参数 文本, 文本型
返回 (子文本替换 (编码_URL编码 (文本, 真, 真), “%”, “”, , , 真))
.子程序 编码_URL编码, 文本型, 公开
.参数 欲编码的文本, 文本型
.参数 不编码字母数字, 逻辑型, 可空, 不需要编码【字母数字.-】可以把此参数设置为真
.参数 是否UTF8, 逻辑型, 可空, 先把文本转换成UTF8编码,再编码成URL
.局部变量 结果文本, 文本型
.局部变量 字节集, 字节集
.局部变量 计次, 整数型
.局部变量 temp, 文本型
.如果真 (欲编码的文本 = “”)
返回 (“”)
.如果真结束
.判断开始 (是否UTF8)
字节集 = 到字节集 (编码_gb2312到utf8 (欲编码的文本))
.默认
字节集 = 到字节集 (欲编码的文本)
.判断结束
.计次循环首 (取字节集长度 (字节集), 计次)
temp = 取十六进制文本 (字节集 [计次])
.如果真 (取文本长度 (temp) < 2)
temp = “0” + temp
.如果真结束
.如果 (不编码字母数字)
.判断开始 (字节集 [计次] > 44 且 字节集 [计次] < 58 且 字节集 [计次] ≠ 47)
' -.0-9
结果文本 = 结果文本 + 字符 (字节集 [计次])
.判断 (字节集 [计次] > 64 且 字节集 [计次] < 91) ' A-Z
结果文本 = 结果文本 + 字符 (字节集 [计次])
.判断 (字节集 [计次] > 96 且 字节集 [计次] < 123) ' a-z
结果文本 = 结果文本 + 字符 (字节集 [计次])
.默认
结果文本 = 结果文本 + “%” + temp
.判断结束
.否则
结果文本 = 结果文本 + “%” + temp
.如果结束
.计次循环尾 ()
返回 (结果文本)
|
|