导航

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

侧边栏
热门文章
1页面
程序员老黄历&求签
热度
455
2推文
在结束了高尾食堂的圣地巡礼之后,在沿着浅川去西八王子的路上发现了许多美景于是就拍摄了下来。 横屏的照片是我拍摄的,竖屏的照片是同行的大佬拍的。 沿途有非常多的八重樱盛开真的非常漂亮。以及居然还有春季出现的红叶!?好神奇呀! 河边的鲤鱼旗也非常壮观,所以拍摄了全景照片。 看来浅川的沿岸也是春季非常不错的踏青圣地呢!
热度
363
3博文
探访《蜡笔小新》老家——春日部游记
热度
143
4页面
友链
热度
143
5博文
动画刚开播就要消失的圣地:《时光流逝,饭菜依旧美味》圣地巡礼之高尾与西八王子
热度
130
6博文
3DS模拟器简体中文字库 | Citra3ds字库 | 符文工房4乱码解决字库 | shared_font.bin
热度
91
7博文
《孤独摇滚》圣地巡礼——金泽八景
热度
78
8博文
利用Tshock搭建强行开荒的《泰拉瑞亚》服务器
热度
78
9推文
《摇曳露营△》联合日本静冈县推出了新的圣地巡礼地图。 这周要去的圣地巡礼正是《摇曳露营△》第二季中的伊豆半岛,也就是巡礼地图的右下角这块区域。 可以看到光是伊豆半岛这块区域的巡礼地点就非常多。 此次行程准备用时2天,能逛多少就算多少。 《摇曳露营△》× 静冈县官方:https://yurucamp-shizuoka.com
热度
65
10推文
看完《孤独摇滚》的总集篇剧场版后篇了。 虽然删减在所难免,但是个人觉得制作组还是在尽量在保留精华。 ED歌曲《Re:Re:》把我惊艳到了,非常熟悉的旋律当时硬是想不起来,回到家查了一下原来第一次听到是在《只有我不在的街道》。 https://www.bilibili.com/video/BV1M5ejeMErR
热度
65
最新评论
广树管理员
2025-04-23 21:51
@Zrzzz:是的捏
Zrzzz
2025-04-23 21:33
风景真好捏(˶‾᷄ ⁻̫ ‾᷅˵)
广树管理员
2025-04-22 19:50
@某科学的贝壳:其实天气之子也出现过,只不过是这里的屋顶
某科学的贝壳
2025-04-22 19:48
位置 加那一张烟花,总让我想到天气之子的场面OωO
广树管理员
2025-04-22 19:48
@智慧哥哥:感谢大佬的捧场,大佬的评论好文艺呀
攻略中
星空列车与白的旅行
暂无评分
Steam星空列车与白的旅行
2025年2月22日 22时 ~ 攻略中
已累计游玩2个月
乘坐的列车,划破夜空,飞驰在星空之下,令人心旷神怡——这可真是场超值之旅。舒爽夜风吹拂下的随心独旅中,我邂逅了随性的乘客,可人怜爱的乘务员。以及……猫耳少女?这场旅行,究竟会在她身上,留下了些什么呢?
界之轨迹
暂无评分
PS5界之轨迹
2024年9月28日 14时 ~ 攻略中
已累计游玩6个月27天
导力之父爱普斯泰因预言的世界末日即将到来,此时东大陆共和国所研发的导力火箭划破天空,即将探访这个世界的边界。 与此同时万事屋的青年们,正聚集在奥雷德自治州,与集结而来的各方势力,一同看望着这科技奇点。 人们这次是否能认识到世界的真实呢?
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