forked from zhoutony/html5
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathurlencode.decode.js
More file actions
92 lines (73 loc) · 3.39 KB
/
urlencode.decode.js
File metadata and controls
92 lines (73 loc) · 3.39 KB
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
/**!
* urlencode - benchmark/urlencode.decode.js
*
* Copyright(c) 2014
* MIT Licensed
*
* Authors:
* fengmk2 <fengmk2@gmail.com> (http://fengmk2.github.com)
*/
"use strict";
/**
* Module dependencies.
*/
var Benchmark = require('benchmark');
var urlencode = require('../');
console.log('node version: %s, date: %j', process.version, new Date());
var suite = new Benchmark.Suite();
var utf8DecodeItems = [
urlencode('苏千'),
urlencode('苏千写的urlencode,应该有用'),
urlencode('suqian want to sleep early tonight.'),
urlencode('你让同一个项目中写两份一样代码的人情何以堪呢,你让同一个项目中写两份一样代码的人情何以堪呢,你让同一个项目中写两份一样代码的人情何以堪呢,你让同一个项目中写两份一样代码的人情何以堪呢'),
];
var gbkDecodeItems = [
urlencode('苏千', 'gbk'),
urlencode('苏千写的urlencode,应该有用', 'gbk'),
urlencode('suqian want to sleep early tonight.', 'gbk'),
urlencode('你让同一个项目中写两份一样代码的人情何以堪呢,你让同一个项目中写两份一样代码的人情何以堪呢,你让同一个项目中写两份一样代码的人情何以堪呢,你让同一个项目中写两份一样代码的人情何以堪呢', 'gbk'),
];
// console.log(urlencode.decode(gbkDecodeItems[3], 'gbk'))
var gbkEncodeString = 'umidtoken=Tc230acc03a564530aee31d22701e9b95&usertag4=0&usertag3=512&usertag2=0&status=0&userid=665377421&out_user=suqian.yf%40taobao.com&promotedtype=0&account_no=20885028063394350156&loginstatus=true&usertag=0&nick=%CB%D5%C7%A7&tairlastupdatetime=1319008872&strid=a68f6ee38f44d2b89ca508444c1ccaf9';
var data = urlencode.parse(gbkEncodeString, {charset: 'gbk'});
// console.log(urlencode.stringify(data, {charset: 'gbk'}) === gbkEncodeString);
suite
.add('urlencode.decode(str)', function () {
urlencode.decode(utf8DecodeItems[0]);
urlencode.decode(utf8DecodeItems[1]);
urlencode.decode(utf8DecodeItems[2]);
urlencode.decode(utf8DecodeItems[3]);
})
.add('urlencode.decode(str, "gbk")', function () {
urlencode.decode(gbkDecodeItems[0], 'gbk');
urlencode.decode(gbkDecodeItems[1], 'gbk');
urlencode.decode(gbkDecodeItems[2], 'gbk');
urlencode.decode(gbkDecodeItems[3], 'gbk');
})
.add('decodeURIComponent(str)', function () {
decodeURIComponent(utf8DecodeItems[0]);
decodeURIComponent(utf8DecodeItems[1]);
decodeURIComponent(utf8DecodeItems[2]);
decodeURIComponent(utf8DecodeItems[3]);
})
.add('urlencode.parse(qs, {charset: "gbk"})', function () {
urlencode.parse(gbkEncodeString, {charset: 'gbk'});
})
.add('urlencode.stringify(data, {charset: "gbk"})', function () {
urlencode.stringify(data, {charset: 'gbk'});
})
.add('urlencode.parse(qs, {charset: "utf8"})', function () {
urlencode.parse('umidtoken=Tc230acc03a564530aee31d22701e9b95&usertag4=0&usertag3=512&usertag2=0&status=0&userid=665377421&out_user=suqian.yf%40taobao.com&promotedtype=0&account_no=20885028063394350156&loginstatus=true&usertag=0&nick=%E8%8B%8F%E5%8D%83&tairlastupdatetime=1319008872&strid=a68f6ee38f44d2b89ca508444c1ccaf9',
{charset: 'utf8'});
})
.add('urlencode.stringify(data, {charset: "utf8"})', function () {
urlencode.stringify(data, {charset: 'utf8'});
})
// add listeners
.on('cycle', function (event) {
console.log(String(event.target));
})
.on('complete', function () {
console.log('Fastest is ' + this.filter('fastest').pluck('name'));
})
.run();