标题: 用JavaScript实现PHP的urlencode函数
作者: Demon
链接: https://demon.tw/programming/javascript-php-urlencode.html
版权: 本博客的所有文章,都遵守“署名-非商业性使用-相同方式共享 2.5 中国大陆”协议条款。
在写JavaScript(严格的说是JScript)版的六维空间作弊工具时(怎么又是这句话。。。其实我早就写完了。。。)需要用到PHP的urlencode函数,于是Google之,发现有几种说法。
有的说用JavaScript自带的encodeURIComponent函数即可实现,真是睁着眼睛说瞎话。不解释,自己测试一下就知道JavaScript的encodeURIComponent的PHP的urlencode是不一样的。有的给出了由VBScript和JavaScript混合编写的urlencode,对不对我没有测试,即使对,也只有IE兼容VBScript。还有的贴出一段不知道是自己写的还是哪里转来的代码,都不测试一下对不对就公布出来。
根据我的经验,中文一般是搜不出什么好代码的,用英文的Google搜索,找到三个不同的版本实现,phpjs.org,webtoolkit.info,cass-hacks.com。第一个给出的函数可以直接使用,第二个给出的Url变量也可以直接使用,第三个给出的函数也是对的,但是要保证输入的参数是UTF-8编码。传说JavaScript的内部采用的是UTF-16编码(是不是我也不知道,传说而已),所以要使用第三个函数需要先把字符串转成UTF-8。幸好这个牛人提供了这样一个函数,把两个结合起来就完成了JavaScript版的urlencode函数。代码太长久不贴出来了,直接下载把,下面是在线演示(注意在博客首页无法演示)
注:不同编码下中文的urlencode是不同的,例如“恶魔”在UTF-8编码下urlencode后为%E6%81%B6%E9%AD%94,而在gb2312编码下urlencode后为%B6%F1%C4%A7。鉴于UTF-8比较普遍,本代码仅实现了UTF-8编码的PHP urlencode函数
下载程序代码[download id=9]
赞赏微信赞赏支付宝赞赏
随机文章:
正是我想要的,其实更想看看gb2312的
多謝你, 寫程式正好用到!!