揰掵佲 发表于 2015-1-13 14:07:32

URL解码ALL支持ANSI+UTF-8

.版本 2

.子程序 URL解码ALL, 文本型, , 支持ANSI+UTF-8
.参数 Url, 文本型

.如果真 (StrStrI (Url, “%E”))
    返回 (U2A (到字节集 (URL解码 (Url))))
.如果真结束

返回 (URL解码 (Url))

.子程序 URL解码, 文本型
.参数 URL地址, 文本型
.局部变量 B, 字节集
.局部变量 L
.局部变量 i指
.局部变量 T, 文本型

i指 = 1
L = 取文本长度 (URL地址) + 1
.判断循环首 (i指 < L)
    T = 取文本中间 (URL地址, i指, 1)
    .如果 (T = “%”)
      T = 取文本中间 (URL地址, i指 + 1, 2)
      i指 = i指 + 2
      B = B + 到字节集 (到字节 (十六到十 (T)))
    .否则
      B = B + 到字节集 (到字节 (取代码 (T, )))
    .如果结束
    i指 = i指 + 1

.判断循环尾 ()
返回 (到文本 (B))

.子程序 十六到十, 长整数型
.参数 欲转换的文本, 文本型

置入代码 ({ 86, 51, 210, 51, 192, 139, 117, 8, 139, 54, 133, 246, 116, 39, 185, 4, 0, 0, 0, 51, 219, 138, 30, 132, 219, 116, 26, 128, 251, 57, 119, 5, 128, 235, 48, 235, 6, 128, 203, 32, 128, 235, 87, 15, 165, 194, 211, 224, 3, 195, 70, 235, 224, 94, 139, 229, 93, 194, 4, 0 })
返回 (0)

.子程序 U2A, 文本型, , UTF-8 to ANSI
.参数 UTF_8Date, 字节集
.局部变量 len, 整数型
.局部变量 UnicodeBin, 字节集
.局部变量 ll
.局部变量 ansi_len, 整数型
.局部变量 unicode_len
.局部变量 ansi, 文本型

ll = 取字节集长度 (UTF_8Date)
len = MultiByteToWideChar_utf8 (65001, 0, UTF_8Date, ll, {}, 0)
UnicodeBin = 取空白字节集 (len × 2)
MultiByteToWideChar_utf8 (65001, 0, UTF_8Date, ll, UnicodeBin, len × 2)
unicode_len = 取字节集长度 (UnicodeBin) ÷ 2
ansi_len = WideCharToMultiByte (936, 0, UnicodeBin, unicode_len, ansi, 0, “”, 0)
ansi = 取空白文本 (ansi_len)
WideCharToMultiByte (936, 0, UnicodeBin, unicode_len, ansi, ansi_len, “”, 0)
返回 (ansi)

.版本 2

.DLL命令 MultiByteToWideChar_utf8, 整数型, , "MultiByteToWideChar"
    .参数 CodePage, 整数型
    .参数 dwFlags, 整数型
    .参数 lpMultiByteStr, 字节集
    .参数 cchMultiByte, 整数型
    .参数 lpWideCharStr, 字节集
    .参数 cchWideChar, 整数型

.DLL命令 WideCharToMultiByte, 整数型, , "WideCharToMultiByte"
    .参数 CodePage, 整数型
    .参数 dwFlags, 整数型
    .参数 lpWideCharStr, 字节集
    .参数 cchWideChar, 整数型
    .参数 lpMultiByteStr, 文本型
    .参数 cchMultiByte, 整数型
    .参数 lpDefaultChar, 文本型
    .参数 lpUsedDefaultChar, 整数型

.DLL命令 StrStrI, 逻辑型, "shell32", "StrStrIA"
    .参数 lpFirst, 文本型
    .参数 lpSrch, 文本型

揰掵佲 发表于 2015-1-13 15:01:54

易语言代码流程网页展示,存在BUG

六合 发表于 2015-1-13 19:46:18

学到了。谢谢

325019289 发表于 2015-1-13 23:31:30

这样子看代码舒服
页: [1]
查看完整版本: URL解码ALL支持ANSI+UTF-8