mysql encode&decode
来源:互联网 发布:淘宝天猫店铺怎么申请 编辑:程序博客网 时间:2024/06/02 03:26
MySQL urlencode 函数、urldecode函数 、multiurldecode 函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
DELIMITER ;
DROP
FUNCTION
IF EXISTS urlencode;
DELIMITER |
CREATE
FUNCTION
urlencode (s
VARCHAR
(4096))
RETURNS
VARCHAR
(4096)
DETERMINISTIC
CONTAINS
SQL
BEGIN
DECLARE
c
VARCHAR
(4096)
DEFAULT
''
;
DECLARE
pointer
INT
DEFAULT
1;
DECLARE
s2
VARCHAR
(4096)
DEFAULT
''
;
IF
ISNULL
(s)
THEN
RETURN
NULL
;
ELSE
SET
s2 =
''
;
WHILE pointer <= length(s) DO
SET
c = MID(s,pointer,1);
IF c =
' '
THEN
SET
c =
'+'
;
ELSEIF
NOT
(ASCII(c)
BETWEEN
48
AND
57
OR
ASCII(c)
BETWEEN
65
AND
90
OR
ASCII(c)
BETWEEN
97
AND
122)
THEN
SET
c = concat(
"%"
,LPAD(CONV(ASCII(c),10,16),2,0));
END
IF;
SET
s2 = CONCAT(s2,c);
SET
pointer = pointer + 1;
END
while;
END
IF;
RETURN
s2;
END
;
|
DELIMITER ;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
DROP
FUNCTION
IF EXISTS urldecode;
DELIMITER |
CREATE
FUNCTION
urldecode (s
VARCHAR
(4096))
RETURNS
VARCHAR
(4096)
DETERMINISTIC
CONTAINS
SQL
BEGIN
DECLARE
c
VARCHAR
(4096)
DEFAULT
''
;
DECLARE
pointer
INT
DEFAULT
1;
DECLARE
h
CHAR
(2);
DECLARE
h1
CHAR
(1);
DECLARE
h2
CHAR
(1);
DECLARE
s2
VARCHAR
(4096)
DEFAULT
''
;
IF
ISNULL
(s)
THEN
RETURN
NULL
;
ELSE
SET
s2 =
''
;
WHILE pointer <= LENGTH(s) DO
SET
c = MID(s,pointer,1);
IF c =
'+'
THEN
SET
c =
' '
;
ELSEIF c =
'%'
AND
pointer + 2 <= LENGTH(s)
THEN
SET
h1 =
LOWER
(MID(s,pointer+1,1));
SET
h2 =
LOWER
(MID(s,pointer+2,1));
IF (h1
BETWEEN
'0'
AND
'9'
OR
h1
BETWEEN
'a'
AND
'f'
)
AND
(h2
BETWEEN
'0'
AND
'9'
OR
h2
BETWEEN
'a'
AND
'f'
)
THEN
SET
h = CONCAT(h1,h2);
SET
pointer = pointer + 2;
SET
c =
CHAR
(CONV(h,16,10));
END
IF;
END
IF;
SET
s2 = CONCAT(s2,c);
SET
pointer = pointer + 1;
END
while;
END
IF;
RETURN
s2;
END
;
|
DELIMITER ;
当一个字符串经过多次 urlencode 处理之后,可以使用 multiurldecode来解码,它将多次调用 urldecode来解码,直到没有需要解码的字符
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
DELIMITER ;
DROP
FUNCTION
IF EXISTS multiurldecode;
DELIMITER |
CREATE
FUNCTION
multiurldecode (s
VARCHAR
(4096))
RETURNS
VARCHAR
(4096)
DETERMINISTIC
CONTAINS
SQL
BEGIN
DECLARE
pr
VARCHAR
(4096)
DEFAULT
''
;
IF
ISNULL
(s)
THEN
RETURN
NULL
;
END
IF;
REPEAT
SET
pr = s;
SELECT
urldecode(s)
INTO
s;
UNTIL pr = s
END
REPEAT;
RETURN
s;
END
;
|
DELIMITER ;
阅读全文
0 0
- mysql encode&decode
- encode decode
- encode decode
- HTML encode & Decode
- js encode decode
- Javascript url decode, encode
- decode和encode
- ASP Encode/Decode Functions
- Extjs encode decode
- python decode encode
- oracle url encode decode
- URLEncoder.encode和decode
- encode decode学习心得
- Extjs encode decode
- Python中的decode/encode
- H264 encode and decode
- js encode decode
- decode、encode、unicode解码
- 【数据结构专题-02】算法介绍
- 05:输出保留12位小数的浮点数
- JavaScript
- OSG 视图与相机 类图
- JavaWEB--POI之EXCEL操作、优化、封装详解系列(六)--PoiExportUtil使用文档(2)分页
- mysql encode&decode
- Javaweb核心之el&jstl
- 关于学习算法的一个辅助工具 Metacademy
- The Snail
- spark本地读取写入s3文件
- cifar-10 分类 tensorflow 代码
- 使用命令行运行JMeter脚本
- Android初级开发(八)——手机多媒体—底部弹窗+选择照片或拍照的实现
- 4.10 leetcode -10 triangle