用JavaScript实现PHP的urlencode函数

标签: , , , ,

在写JavaScript(严格的说是JScript)版的六维空间作弊工具时(怎么又是这句话。。。其实我早就写完了。。。)需要用到PHP的urlencode函数,于是Google之,发现有几种说法。

有的说用JavaScript自带的encodeURIComponent函数即可实现,真是睁着眼睛说瞎话。不解释,自己测试一下就知道JavaScript的encodeURIComponent的PHP的urlencode是不一样的。有的给出了由VBScript和JavaScript混合编写的urlencode,对不对我没有测试,即使对,也只有IE兼容VBScript。还有的贴出一段不知道是自己写的还是哪里转来的代码,都不测试一下对不对就公布出来。

根据我的经验,中文一般是搜不出什么好代码的,用英文的Google搜索,找到三个不同的版本实现,phpjs.orgwebtoolkit.infocass-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]

随机文章:

  1. VBS For Next循环的一些细节
  2. VBS字节数组Byte()的处理方法
  3. VeryPDF PDF2Word v3.1 注册码
  4. CRC批量校验工具——RapidCRC
  5. HTML,Unicode与NCR(数字字符引用)

2 条评论 发表在“用JavaScript实现PHP的urlencode函数”上

  1. wj说道:

    正是我想要的,其实更想看看gb2312的

  2. FISH说道:

    多謝你, 寫程式正好用到!!

留下回复