易语言下的Unicode编码和解码

2017年03月21日

原创内容,转载请注明出处: https://www.myzhenai.com.cn/post/2491.html https://www.myzhenai.com/thread-17982-1-1.html
关键词: 易语言 Unicode 编码 解码 编码转换
因为我这段时间在写一个获取网络音乐的真实链接地址的程序, 在抓包的过程中发现很多信息里的中文字符串都是用Unicode编码的, 需要我们在获得包信息后再进行一次Unicode解码. 这里我们要用到的是一条 编码转换 的命令.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
.版本 2
.支持库 iconv
.子程序 unicode_转换, 文本型
.参数 unicode文本, 文本型
.参数 转换编码, 整数型, 可空, 0为gbk 1为utf-8 2为gb2312 3为gb18030
.局部变量 a, 整数型
.局部变量 b, 文本型, , "0"
.局部变量 k, 整数型
.局部变量 utf, 文本型
.局部变量 bima, 文本型
.局部变量 gbk, 文本型
.局部变量 文本, 文本型
.如果 (是否为空 (转换编码))
a = 2
.否则
a = 转换编码
.如果结束
.如果真 (a = 0)
bima = #编码_GBK
.如果真结束
.如果真 (a = 1)
bima = #编码_UTF_8
.如果真结束
.如果真 (a = 2)
bima = #编码_GB2312
.如果真结束
.如果真 (a = 3)
bima = #编码_GB18030
.如果真结束
.如果真 (a ≤ 3)
.如果真 (寻找文本 (unicode文本, “\”, , 假)-1)
b = 分割文本 (unicode文本, “\u”, )
.计次循环首 (取数组成员数 (b), k)
.如果真 (b [k] ≠ “”)
.如果真 (取文本长度 (b [k])4)
utf = 取十六进制文本 (到数值 (b [k]))
.如果真结束
utf = 到文本 (编码转换 (到字节集 (“\u” + b [k]), #编码_JAVA, bima, ))
.如果真结束
文本 = 文本 + utf
.计次循环尾 ()
.如果真结束
.如果真结束
.如果真 (寻找文本 (文本, “\u”, , 假)-1)
文本 = 子文本替换 (文本, “\u”, “”, , , 真)
.如果真结束
文本 = 子文本替换 (文本, #小双引号, “”, , , 真)
返回 (文本)
.版本 2 .支持库 iconv .子程序 unicode_转换, 文本型 .参数 unicode文本, 文本型 .参数 转换编码, 整数型, 可空, 0为gbk 1为utf-8 2为gb2312 3为gb18030 .局部变量 a, 整数型 .局部变量 b, 文本型, , "0" .局部变量 k, 整数型 .局部变量 utf, 文本型 .局部变量 bima, 文本型 .局部变量 gbk, 文本型 .局部变量 文本, 文本型 .如果 (是否为空 (转换编码)) a = 2 .否则 a = 转换编码 .如果结束 .如果真 (a = 0) bima = #编码_GBK .如果真结束 .如果真 (a = 1) bima = #编码_UTF_8 .如果真结束 .如果真 (a = 2) bima = #编码_GB2312 .如果真结束 .如果真 (a = 3) bima = #编码_GB18030 .如果真结束 .如果真 (a ≤ 3) .如果真 (寻找文本 (unicode文本, “\”, , 假) ≠ -1) b = 分割文本 (unicode文本, “\u”, ) .计次循环首 (取数组成员数 (b), k) .如果真 (b [k] ≠ “”) .如果真 (取文本长度 (b [k]) ≥ 4) utf = 取十六进制文本 (到数值 (b [k])) .如果真结束 utf = 到文本 (编码转换 (到字节集 (“\u” + b [k]), #编码_JAVA, bima, )) .如果真结束 文本 = 文本 + utf .计次循环尾 () .如果真结束 .如果真结束 .如果真 (寻找文本 (文本, “\u”, , 假) ≠ -1) 文本 = 子文本替换 (文本, “\u”, “”, , , 真) .如果真结束 文本 = 子文本替换 (文本, #小双引号, “”, , , 真) 返回 (文本)
.版本 2
.支持库 iconv

.子程序 unicode_转换, 文本型
.参数 unicode文本, 文本型
.参数 转换编码, 整数型, 可空, 0为gbk 1为utf-8 2为gb2312 3为gb18030
.局部变量 a, 整数型
.局部变量 b, 文本型, , "0"
.局部变量 k, 整数型
.局部变量 utf, 文本型
.局部变量 bima, 文本型
.局部变量 gbk, 文本型
.局部变量 文本, 文本型

.如果 (是否为空 (转换编码))
    a = 2
.否则
    a = 转换编码
.如果结束
.如果真 (a = 0)
    bima = #编码_GBK
.如果真结束
.如果真 (a = 1)
    bima = #编码_UTF_8
.如果真结束
.如果真 (a = 2)
    bima = #编码_GB2312
.如果真结束
.如果真 (a = 3)
    bima = #编码_GB18030
.如果真结束
.如果真 (a ≤ 3)
    .如果真 (寻找文本 (unicode文本, “\”, , 假) ≠ -1)
        b = 分割文本 (unicode文本, “\u”, )
        .计次循环首 (取数组成员数 (b), k)
            .如果真 (b [k] ≠ “”)
                .如果真 (取文本长度 (b [k]) ≥ 4)
                    utf = 取十六进制文本 (到数值 (b [k]))
                .如果真结束
                utf = 到文本 (编码转换 (到字节集 (“\u” + b [k]), #编码_JAVA, bima, ))
            .如果真结束
            文本 = 文本 + utf
        .计次循环尾 ()
    .如果真结束

.如果真结束
.如果真 (寻找文本 (文本, “\u”, , 假) ≠ -1)
    文本 = 子文本替换 (文本, “\u”, “”, , , 真)
.如果真结束
文本 = 子文本替换 (文本, #小双引号, “”, , , 真)
返回 (文本)

 


sicnature ---------------------------------------------------------------------
I P 地 址: 18.220.137.93
区 域 位 置: 美国俄亥俄
系 统 信 息: 美国
Original content, please indicate the source:
同福客栈论坛 | 蟒蛇科普海南乡情论坛 | JiaYu Blog
sicnature ---------------------------------------------------------------------
Welcome to reprint. Please indicate the source https://myzhenai.com/post/2491.html

没有评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注