导航

萌即是正义!时不时分享一些ACG活动记录与有趣代码的小站!

侧边栏
热门文章
1推文
一晃眼正式进入2025年的蛇年春节了呢。祝各位大佬新春快乐!
热度
700
2博文
探访《蜡笔小新》老家——春日部游记
热度
195
3推文
博客的评论可以撤回啦!在维基萌博客系统0.24.0版本中,如果遇到评论内容有不妥的情况,可以在5分钟内进行撤回操作(当然博主还是会知道你撤回了什么内容🤭),这样就不怕奇怪的评论被发到网上啦! 这评论系统做的越来越像是聊天系统了呢😅。 另外,既然可以撤回了,那么评论者自然也就可以看到自己还在审核中的评论了。对比之前的弹窗提示,这样用户能更直观的确认到自己刚才的评论是否发送成功了,从而防止出现重复发送评论的现象。 维基萌博客系统0.24.0版本现已发布,具体更新内容详见:https://github.com/eeg1412/wikimoeNodeJSBlog/releases/tag/v0.24.0
热度
169
4页面
游戏
热度
117
5博文
手把手从零开始搭建《泰拉瑞亚》(Terraria)服务器
热度
104
6页面
关于
热度
91
7博文
历经多重考验的第一天——《摇曳露营△》圣地巡礼之伊豆高原大室山和仙人掌动物公园
热度
78
8博文
【RPG Maker MV】插件脚本指令文档 | Script Calls
热度
78
9推文
今日份的秋叶原。
热度
65
10推文
看《间谍×过家家·代号:白》的时候亚马逊还顺带给我推荐了《铃芽之旅》,这才想起来我《铃芽之旅》也还没看呀!于是又抽空在亚马逊上把《铃芽之旅》给看完了。 可以说是相继《你的名字》、《天气之子》之后的集大成之作。画面依旧是那么的漂亮,剧情依旧是那个女孩遇见男孩。相比较前几作,这作在男女主的感情描绘上确实生硬了一些,有一种男主仅凭一张脸就让女主出生入死的感觉😅。不过相对的,这一作对于"灾难"的描绘比前几作要强上很多。伏笔也还不错,只不过感觉剧中有挺多我觉得应该是伏笔的地方结果居然不是,不知道是不是因为篇幅原因给删减了? 这时间一晃《铃芽之旅》已经是2022年的电影了,不知道新海诚的下一部作品什么时候出呀!
热度
65
最新评论
广树
2025-01-31 20:37
@tongnixcv:撤了吗?
tongnixcv
2025-01-31 19:42
哈哈哈,我撤我撤
广树
2025-01-31 12:31
@laffey:大佬新年快乐
广树
2025-01-31 12:31
@小彦:新年快乐! 哈哈哈,一年可能也就几次发短推文。
laffey
2025-01-31 12:23
新年快乐
正在攻略

logo_kai.jpg


PSN奖杯卡

PSN奖杯卡

赞助商广告

PHP urlencode()生成的编码所对应的JS解码

作者:广树时间:2018-04-15 20:24:39分类:PHP

因为要在地址栏里传中文参数,但是地址栏传中文参数是很危险的一件事情,我就用urlencode()转了下。

但是本以为JS的 encodeURI()能解码,但是很可惜不行,于是我找到了可以给PHP urlencode()生成的编码所对应的JS解码。

function urldecode(encodedString){
    var output = encodedString;
    var binVal, thisString;
    var myregexp = /(%[^%]{2})/;
    function utf8to16(str)
    {
        var out, i, len, c;
        var char2, char3;
 
        out = "";
        len = str.length;
        i = 0;
        while(i < len) 
        {
            c = str.charCodeAt(i++);
            switch(c >> 4)
            { 
                case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:
                out += str.charAt(i-1);
                break;
                case 12: case 13:
                char2 = str.charCodeAt(i++);
                out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));
                break;
                case 14:
                char2 = str.charCodeAt(i++);
                char3 = str.charCodeAt(i++);
                out += String.fromCharCode(((c & 0x0F) << 12) |
                        ((char2 & 0x3F) << 6) |
                        ((char3 & 0x3F) << 0));
                break;
            }
        }
        return out;
    }
    while((match = myregexp.exec(output)) != null
                && match.length > 1
                && match[1] != '')
    {
        binVal = parseInt(match[1].substr(1),16);
        thisString = String.fromCharCode(binVal);
        output = output.replace(match[1], thisString);
    }
     
    //output = utf8to16(output);
    output = output.replace(/\\+/g, " ");
    output = utf8to16(output);
    return output;
}

donate.png

1210 x 50(蓝底).png

cloudcone