php urlencode()函数URL编码转换实例解析

URLEncode:是对网页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://www.baidu.com/中文.rar -> 浏览器自动转换为 -> http://www.baidu.com/%D6%D0%CE%C4.rar

后来发现Firefox对GB2312的Encode的中文URL支持不好,因为它默认是UTF-8编码发送URL的,但是ftp://协议可以,这应该算是火狐的一个bug。

下面来看一段PHP中URLEncode编码转换的代码实例:

//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函数转换,示例代码如下:

$url=‘http://www.baidu.com/中文.rar‘;
echo urlencode(mb_convert_encoding($url,‘utf-8‘,‘gb2312‘))."\n";
echo rawurlencode(mb_convert_encoding($url,‘utf-8‘,‘gb2312‘))."\n";

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

时间: 2024-10-24 14:26:45

php urlencode()函数URL编码转换实例解析的相关文章

URL 编码转换 (中文->English)wiki ,Wikipedia,维基百科,PPT,PDF

wiki :URL 编码转换 (中文->English)wiki ,Wikipedia,维基百科, 1. 原始URL: https://zh.wikipedia.org/wiki/維基 2. 复制后得到的编码后的URL: https://zh.wikipedia.org/wiki/%E7%B6%AD%E5%9F%BA 1 使用微软提供的源代码,一切正常显示: PPT,pdf 1 <iframe src='https://view.officeapps.live.com/op/embed.asp

C# URL编码转换 URL转码 UrlDecode UrlEncode

using System.Web; 引用system.web. textBox2.Text = System.Web.HttpUtility.UrlDecode(textBox1.Text, System.Text.Encoding.GetEncoding("GB2312"));//将Url中的编码转换为简体汉字 textBox2.Text = System.Web.HttpUtility.UrlEncode(textBox1.Text, System.Text.Encoding.Ge

PHP iconv()函数字符编码转换的问题讲解_php技巧 - PHP

文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 在php中iconv函数库能够完成各种字符集间的转换,是php编程中不可缺少的基础函数库:但有时候iconv对于部分数据转码会无缘无故的少一些.比如在转换字符"—"到gb2312时会出错. 下面一起慢慢看一下这个函数的用法. 最简单的应用,把gb2312置换成utf-8: $text=iconv("GB2312","UTF-8",$text); 在用$text=ico

lua urlencode urldecode URL编码

URL编码其实就是对一些字符转义为%加上该字符对应ASCII码的二位十六进制形式. 如: 字符 特殊字符的含义 URL编码 # 用来标志特定的文档位置 %23 % 对特殊字符进行编码 %25 & 分隔不同的变量值对 %26 + 在变量值中表示空格 %2B \ 表示目录路径 %2F = 用来连接键和值 %3D ? 表示查询字符串的开始 %3F so: function decodeURI(s) s = string.gsub(s, '%%(%x%x)', function(h) return st

JavaScript URL编码转换函数 encodeURIComponent()

encodeURIComponent()定义和用法 encodeURIComponent() 函数可把字符串作为 URI 组件进行编码. 语法:encodeURIComponent(URIstring) 参数描述:URIstring 必需.一个字符串,含有 URI 组件或其他要编码的文本. 返回值:URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换. 说明:该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * '

【转】url编码转换

在ie中经常看见在url栏中有类似“%CC%EC%CF%C2h”的字样,那是 URL 中传输而编码的字符串,一般中文就会被拆分成“%CC%EC”字样,其实这个转换规则比较简单,就是将字节编码转换为16进制后加%输出,我也自己写过解码程序,不过不大令人满意,今天找到了专门编码解码的函数.这下方便多了. 解码:         static void Main(string[] args)        {            string aa = "%CC%EC%CF%C2hello%CE%D

LUA 捕获模式 URL编码的例子解析

function escape(s) s=string.gsub(s,"([&=+%c])",function(c) return string.format("%%%02X",string.byte(c)) end ) s=string.gsub(s," ","+") return s end 第一个gsub , [ ]中 匹配 & = + 及其他符号 %c 中的任意一个 替换为 格式化成 以 % 开头的(%

C++URL编码转换

1 #pragma once 2 3 #include <iostream> 4 #include <string> 5 #include <windows.h> 6 7 using namespace std; 8 9 class strCoding 10 { 11 public: 12 strCoding(void); 13 ~strCoding(void); 14 15 // utf_8 转 gb2312 16 void UTF_8ToGB2312(string

delphi URL 编码的转换

先介绍一下,Delphi中处理Google的URL编码解码,其中就会明白URL编码转换的方法的 从delphi的角度看Google(谷歌)URL编码解码方式 在网上搜索了一下,似乎没有什么关于google的URL编码解码的很详细的资料,因此在这里写一下,希望给有用的人提供一点帮助. 使用google谷歌搜索一下关键词,对应的编码如下: 刀:%E5%88%80 刀具:%E5%88%80%E5%85%B7 刀具网:%E5%88%80%E5%85%B7%E7%9A%84 因此可见,google对URL