导航

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

侧边栏
最新评论
广树管理员
2025-07-08 08:56
@Mimosa:并不是,这段时间制作组的宣传挺积极的
Mimosa
2025-07-08 01:58
猫娘乐园ww 可能是前几天后传刚在steam发售的缘故吧,感觉最近猫娘乐园的人气又高起来了(或许是我的错觉吗)
广树管理员
2025-07-07 19:57
@chongov:是呀,这是青春又回来了
chongov
2025-07-07 17:15
幸运星!我大学二年级时的解忧好动画!୧(๑•̀⌄•́๑)૭
广树管理员
2025-07-06 20:46
@applemiku:🐱🐱可爱呢!幸运星和凉宫最近活动多起来了
攻略中
ToHeart
暂无评分
SteamToHeart
2025年6月26日 19时 ~ 攻略中
已累计游玩1周4天
AQUAPLUS推出的“温暖人心的校园恋爱游戏”将以高清全3D形式焕新归来!
爱上火车-Last Run!!-
暂无评分
Steam爱上火车-Last Run!!-
2025年6月24日 19时 ~ 攻略中
已累计游玩1周6天
游戏设定于架空日本。为了辅助驾驶员行驶,每列火车都配备了专用的铁路人偶。然而,由于新技术“空凝机”以及人工智能的面世,现有的铁路系统几乎已被废弃,铁路人偶和对应列车也被出售。主人公右田双铁所生活的“御一夜市”正在衰退,有人提出让空凝机工厂落户此地以振兴经济。空凝机工厂会带来水污染,而主人公为了阻止其落户而回到御一夜市。
符文工房龙之天地
暂无评分
Steam符文工房龙之天地
2025年6月10日 20时 ~ 攻略中
已累计游玩3周6天
体验奇幻冒险与日常生活的 RPG《符文工房》系列最新作。 玩家可以在日常生活中种田、钓鱼和复兴村庄,也可以在冒险的过程中邂逅各种各样的角色。打造属于自己的“村庄”,享受全新的冒险与生活吧!
fault - StP - LIGHTKRAVTE
暂无评分
Steamfault - StP - LIGHTKRAVTE
2025年5月29日 20时 ~ 攻略中
已累计游玩1个月9天
全球累计销量超过50万份的“fault”系列最新作!故事的舞台是一个融合了奇幻与科幻的超前世界——卢森海德王国。本作讲述了生活在此地的一个平凡又平庸的究极普通市民——名为果子的少年的故事。
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