理解URLEncode: 
URLEncode:是指针对网页url中的中文字符的一种编码转化方式,最常见的就是Baidu、Google等搜索引擎中输入中文查询时候,生成经过 Encode过的网页URL。URLEncode的方式一般有两种一种是传统的基于GB2312的Encode(Baidu、Yisou等使用),一种是 基于UTF-8的Encode(Google,Yahoo等使用)。本工具分别实现两种方式的Encode与Decode。

中文 -> GB2312的Encode -> %D6%D0%CE%C4 
中文 -> UTF-8的Encode -> %E4%B8%AD%E6%96%87

Html中的URLEncode: 
编码为GB2312的html文件中, 
http://ud03.kinoko.name/中文.rar -> 浏览器自动转换为 -> http://ud03.kinoko.name/%D6%D0%CE%C4.rar 
注意:Firefox对GB2312的Encode的中文URL支持不好,因为它默认是UTF-8编码发送URL的,但是ftp://协议可以,我试过了.我认为这应该算是Firefox一个bug.

编码为UTF-8的html文件中, 
http://ud03.kinoko.name/中文.rar -> 浏览器自动转换为 -> http://ud03.kinoko.name/%E4%B8%AD%E6%96%87.rar

PHP中的URLEncode:

Php代码  
  1. <?php
  2. //GB2312的Encode
  3. echo urlencode("中文-_. ")."\n"; //%D6%D0%CE%C4-_.+
  4. echo urldecode("%D6%D0%CE%C4-_. ")."\n"; //中文-_.
  5. echo rawurlencode("中文-_. ")."\n"; //%D6%D0%CE%C4-_.%20
  6. echo rawurldecode("%D6%D0%CE%C4-_. ")."\n"; //中文-_.
  7. ?>

除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数。 
urlencode和rawurlencode的区别: 
urlencode 将空格则编码为加号(+) 
rawurlencode 将空格则编码为加号(%20)

如果要使用UTF-8的Encode,有两种方法: 
一、将文件存为UTF-8文件,直接使用urlencode、rawurlencode即可。 
二、使用mb_convert_encoding函数。

Php代码  
  1. <?php
  2. $url = 'http://ud03.kinoko.name/中文.rar';
  3. echo urlencode(mb_convert_encoding($url, 'utf-8', 'gb2312'))."\n";
  4. echo rawurlencode(mb_convert_encoding($url, 'utf-8', 'gb2312'))."\n";
  5. //http%3A%2F%2Fud03.kinoko.name%2F%E4%B8%AD%E6%96%87.rar
  6. ?>

实例:

Php代码  
  1. <?php
  2. function parseurl($url="")
  3. {
  4. $url = rawurlencode(mb_convert_encoding($url, 'gb2312', 'utf-8'));
  5. $a = array("%3A", "%2F", "%40");
  6. $b = array(":", "/", "@");
  7. $url = str_replace($a, $b, $url);
  8. return $url;
  9. }
  10. $url="ftp://ud03:password@ud03.kinoko.name/中文/中文.rar";
  11. echo parseurl($url);
  12. //ftp://ud03:password@ud03.kinoko.name/%D6%D0%CE%C4/%D6%D0%CE%C4.rar
  13. ?>

JavaScript中的URLEncode:

%E4%B8%AD%E6%96%87-_.%20%E4%B8%AD%E6%96%87-_.%20

encodeURI 不对下列字符进行编码:“:”、“/”、“;”、“?”、“@”等特殊字符。

http://ud03.kinoko.name/%E4%B8%AD%E6%96%87.rarhttp%3A%2F%2Fud03.kinoko.name%2F%E4%B8%AD%E6%96%87.rar

php urlencode()函数详解相关推荐

  1. PHP加密函数与解密函数详解

    本篇文章主要为大家详细介绍了PHP中的加密函数与解密函数 Php常用的加密函数有 MD5加密(不可逆).Crypt加密(不可逆).Sha1加密(不可逆).Urlencode加密(可逆) base64编 ...

  2. C语言网络编程:accept函数详解

    文章目录 前言 函数描述 代码实例 如何得到客户端的IP 和 端口号 前言 当使用tcp服务器使用socket创建通信文件描述符,bind绑定了文件描述符,服务器ip和端口号,listen将服务器端的 ...

  3. 【FFmpeg】函数详解(三)

    FFmpeg函数详解 14.av_write_frame 15.av_interleaved_write_frame 16.av_write_trailer 17.avio_close 18.av_i ...

  4. 【FFmpeg】函数详解(二)

    FFmpeg函数详解 9.av_dump_format 10.avio_open 11.avformat_write_header 12.avcodec_send_frame 13.avcodec_r ...

  5. 【FFmpeg】函数详解(一)

    FFmpeg函数详解 一.错误码相关 1.AVERROR 2.av_strerror 3.其他错误码解释 二.编解码 1.获取编解码器 2.申请.释放上下文环境 3.打开编码器avcodec_open ...

  6. 【ES6】Generator函数详解

    [ES6]Generator函数详解 一.Generator函数简介 基本概念 函数写法 yield关键字介绍 二.next方法的参数 三.for...of循环 四.关于普通throw()与Gener ...

  7. mysql的聚合函数综合案例_MySQL常用聚合函数详解

    一.AVG AVG(col) 返回指定列的平均值 二.COUNT COUNT(col) 返回指定列中非NULL值的个数 三.MIN/MAX MIN(col):返回指定列的最小值 MAX(col):返回 ...

  8. python平方数迭代器_对python中的高效迭代器函数详解

    python中内置的库中有个itertools,可以满足我们在编程中绝大多数需要迭代的场合,当然也可以自己造轮子,但是有现成的好用的轮子不妨也学习一下,看哪个用的顺手~ 首先还是要先import一下: ...

  9. python基础知识~ 函数详解2

    python~函数详解2  1 生成器函数    定义 如果函数有yield这个关键字,就是生成器函数.生成器函数() 获取的是生成器,不执行函数   须知 yield和return一样,都可以返回数 ...

最新文章

  1. 【组队学习】【29期】Datawhale组队学习内容介绍
  2. solrlucene3.6.0源码解析(三)
  3. 安全漏洞“心脏出血”继续 原因是“丘比特”
  4. The Code Is The Model
  5. 构造前缀贪心+ 计蒜客 子矩阵求和
  6. Spring Boot 发布 jar 包转为 war 包秘籍。
  7. java设计模式之行为型设计模式
  8. 手机上网有几种方式?
  9. Java 反射机制之 Class
  10. 关于18183-王者荣耀专区网站的TDK简要分析(更多内容请访问http://www.eduaskx6.com/)...
  11. hdu4318 最短路变形
  12. AppScan下载安装教程
  13. ios相机黑边_iOS相机去黑框
  14. iOS之推荐六款不错的 iOS 15 Safari 浏览器扩展
  15. Flutter 实现整个App变为灰色
  16. (据说是)鏼爷和吴凯路爷爷出的NOIP模拟神题集锦
  17. 02 Redis 底层数据结构
  18. 软件测试方法比较(给新手)
  19. 互动机顶盒与普通机顶盒比较
  20. 最全最详细的APP运营推广策划方案

热门文章

  1. 简单实现CSS导航栏二级菜单从上往下平滑滑下弹出效果
  2. iOS 封装WebView 控制器
  3. Deep Learning ---Ian Goodfellow
  4. DNS服务器之一:总揽与非权威DNS的搭建
  5. 计算机科学导论(读书笔记)
  6. .NET Framework4.5 .NET Framework4.0
  7. ### 献给阿尔吉侬的花束python版本——bfs
  8. 拼多多店铺排名提升怎么做?
  9. 非科班出身如何转行程序员?
  10. 快上车!日语86G学习资料免费领取!!