易语言下的Unicode编码和解码

2017年03月21日

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

.版本 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 地 址: 3.145.97.235
区 域 位 置: 美国
系 统 信 息: 美国
Original content, please indicate the source:
同福客栈论坛 | 蟒蛇科普海南乡情论坛 | JiaYu Blog
sicnature ---------------------------------------------------------------------
Welcome to reprint. Please indicate the source http://myzhenai.com/post/2491.html

没有评论

发表回复

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