我用易语言写了一个程序,大多代码都是处理封包还有发送封包,用易语言调试模式运行程序从头到尾都没出错


但是编译后10个中有9个都会出现内存不能为XXX 指令XXXX出错
.版本 2
.支持库 internet
.支持库 spec

.子程序 _按钮1_被单击
.局部变量 返回文本, 文本型

返回文本 = 到文本 (HTTP读文件 (“” + URL编码 (编辑框1.内容)))
调试输出 (返回文本)

.子程序 URL编码, 文本型
.参数 转换前, 文本型
.参数 自定义编码, 文本腊困旦型, 可空, (可空)例: (空格)|+,?|?,/|/ 以|隔开替换的 以,隔开多个
.参数 只转换汉字, 逻辑型, 可空, 可空,默认为全转换,为真 只转换汉字
.局部变量 局部_数据, 字节集
.局部变量 i, 整数型
.局部变量轮扰 ii, 整数型
.局部变量 转换后, 文本型
.局部变量 文本, 文本型
.局部变量 自定义, 文本型, , "0"
.局部变量 th, 文本型, , "2"

局部_数据 = 到字节集 (删首尾空 (转换前))
转换后 = “”
自定义 = 分割文本 (自定义编码, “,”, )
.计次循环首 (取字节集长度 (局部_数据), i)
.判断开始 (取数组成员数 (自定义) > 0)
.计次循环首 (取数组成员数 (自定义), ii)
th = 分割文本 (自定义 [ii], “|”, )
.如果真 (取文本尺早右边 (自定义 [ii], 1) = “|” 或 寻找文本 (自定义 [ii], “|”, 0, 假) < 0)
加入成员 (th, th [1])
.如果真结束
.如果 (取代码 (th [1], 1) = 局部_数据 [i])
文本 = th [2]
跳出循环 ()
.否则
.如果 (只转换汉字 = 真)
.判断开始 (局部_数据 [i] > 122)
文本 = “%” + 取十六进制文本 (局部_数据 [i])
.默认
文本 = 字符 (局部_数据 [i])
.判断结束

.否则
文本 = “%” + 取十六进制文本 (局部_数据 [i])
.如果结束

.如果结束

.计次循环尾 ()
.默认
.如果 (只转换汉字 = 真)
.判断开始 (局部_数据 [i] > 122)
文本 = “%” + 取十六进制文本 (局部_数据 [i])
.默认
文本 = 字符 (局部_数据 [i])
.判断结束

.否则
文本 = “%” + 取十六进制文本 (局部_数据 [i])
.如果结束

.判断结束
转换后 = 转换后 + 文本
.计次循环尾 ()
返回 (转换后)