php 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
- //GB2312的Encode
- echo urlencode("中文-_. ")."\n"; //%D6%D0%CE%C4-_.+
- echo urldecode("%D6%D0%CE%C4-_. ")."\n"; //中文-_.
- echo rawurlencode("中文-_. ")."\n"; //%D6%D0%CE%C4-_.%20
- echo rawurldecode("%D6%D0%CE%C4-_. ")."\n"; //中文-_.
- ?>
除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数。
urlencode和rawurlencode的区别:
urlencode 将空格则编码为加号(+)
rawurlencode 将空格则编码为加号(%20)
如果要使用UTF-8的Encode,有两种方法:
一、将文件存为UTF-8文件,直接使用urlencode、rawurlencode即可。
二、使用mb_convert_encoding函数。
- <?php
- $url = 'http://ud03.kinoko.name/中文.rar';
- echo urlencode(mb_convert_encoding($url, 'utf-8', 'gb2312'))."\n";
- echo rawurlencode(mb_convert_encoding($url, 'utf-8', 'gb2312'))."\n";
- //http%3A%2F%2Fud03.kinoko.name%2F%E4%B8%AD%E6%96%87.rar
- ?>
实例:
- <?php
- function parseurl($url="")
- {
- $url = rawurlencode(mb_convert_encoding($url, 'gb2312', 'utf-8'));
- $a = array("%3A", "%2F", "%40");
- $b = array(":", "/", "@");
- $url = str_replace($a, $b, $url);
- return $url;
- }
- $url="ftp://ud03:password@ud03.kinoko.name/中文/中文.rar";
- echo parseurl($url);
- //ftp://ud03:password@ud03.kinoko.name/%D6%D0%CE%C4/%D6%D0%CE%C4.rar
- ?>
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()函数详解相关推荐
- PHP加密函数与解密函数详解
本篇文章主要为大家详细介绍了PHP中的加密函数与解密函数 Php常用的加密函数有 MD5加密(不可逆).Crypt加密(不可逆).Sha1加密(不可逆).Urlencode加密(可逆) base64编 ...
- C语言网络编程:accept函数详解
文章目录 前言 函数描述 代码实例 如何得到客户端的IP 和 端口号 前言 当使用tcp服务器使用socket创建通信文件描述符,bind绑定了文件描述符,服务器ip和端口号,listen将服务器端的 ...
- 【FFmpeg】函数详解(三)
FFmpeg函数详解 14.av_write_frame 15.av_interleaved_write_frame 16.av_write_trailer 17.avio_close 18.av_i ...
- 【FFmpeg】函数详解(二)
FFmpeg函数详解 9.av_dump_format 10.avio_open 11.avformat_write_header 12.avcodec_send_frame 13.avcodec_r ...
- 【FFmpeg】函数详解(一)
FFmpeg函数详解 一.错误码相关 1.AVERROR 2.av_strerror 3.其他错误码解释 二.编解码 1.获取编解码器 2.申请.释放上下文环境 3.打开编码器avcodec_open ...
- 【ES6】Generator函数详解
[ES6]Generator函数详解 一.Generator函数简介 基本概念 函数写法 yield关键字介绍 二.next方法的参数 三.for...of循环 四.关于普通throw()与Gener ...
- mysql的聚合函数综合案例_MySQL常用聚合函数详解
一.AVG AVG(col) 返回指定列的平均值 二.COUNT COUNT(col) 返回指定列中非NULL值的个数 三.MIN/MAX MIN(col):返回指定列的最小值 MAX(col):返回 ...
- python平方数迭代器_对python中的高效迭代器函数详解
python中内置的库中有个itertools,可以满足我们在编程中绝大多数需要迭代的场合,当然也可以自己造轮子,但是有现成的好用的轮子不妨也学习一下,看哪个用的顺手~ 首先还是要先import一下: ...
- python基础知识~ 函数详解2
python~函数详解2 1 生成器函数 定义 如果函数有yield这个关键字,就是生成器函数.生成器函数() 获取的是生成器,不执行函数 须知 yield和return一样,都可以返回数 ...
最新文章
- 【组队学习】【29期】Datawhale组队学习内容介绍
- solrlucene3.6.0源码解析(三)
- 安全漏洞“心脏出血”继续 原因是“丘比特”
- The Code Is The Model
- 构造前缀贪心+ 计蒜客 子矩阵求和
- Spring Boot 发布 jar 包转为 war 包秘籍。
- java设计模式之行为型设计模式
- 手机上网有几种方式?
- Java 反射机制之 Class
- 关于18183-王者荣耀专区网站的TDK简要分析(更多内容请访问http://www.eduaskx6.com/)...
- hdu4318 最短路变形
- AppScan下载安装教程
- ios相机黑边_iOS相机去黑框
- iOS之推荐六款不错的 iOS 15 Safari 浏览器扩展
- Flutter 实现整个App变为灰色
- (据说是)鏼爷和吴凯路爷爷出的NOIP模拟神题集锦
- 02 Redis 底层数据结构
- 软件测试方法比较(给新手)
- 互动机顶盒与普通机顶盒比较
- 最全最详细的APP运营推广策划方案