PHP中文URL编解码(urlencode()rawurlencode()
echo '<a href="mycgi?foo=', urlencode($userinput), '">';
?>
echo '<a href="mycgi?foo=', htmlentities(urlencode($userinput)), '">';
?>
echo '<a href="ftp://user:', rawurlencode('foo @+%/'),
'@ftp.my.com/x.txt">';
?>
echo '<a href="http://x.com/department_list_script/',
rawurlencode('sales and marketing/Miami'), '">';
?>
$a = explode('&', $QUERY_STRING);
$i = 0;
while ($i < count($a)) {
$b = split('=', $a[$i]);
echo 'Value for parameter ', htmlspecialchars(urldecode($b[0])),
' is ', htmlspecialchars(urldecode($b[1])), "<br />n";
$i++;
}
?>
echo rawurldecode('foo%20bar%40baz'); // foo bar@baz
?>
urldecode() 和 rawurldecode() 解码出的字符串是 UTF-8格式的编码,如果URL中含有中文的话,而页面设置又不是 UTF-8 的话,则要把解码出的字符串进行转换,才能正常显示!
function utf8RawUrlDecode ($source)
{
$decodedStr = "";
$pos = 0;
$len = strlen ($source);
while ($pos < $len) {
$charAt = substr ($source, $pos, 1);
if ($charAt == '%') {
$pos++;
$charAt = substr ($source, $pos, 1);
if ($charAt == 'u') {
// we got a unicode character
$pos++;
$unicodeHexVal = substr ($source, $pos, 4);
$unicode = hexdec ($unicodeHexVal);
$entity = "". $unicode . ';';
$decodedStr .= utf8_encode ($entity);
$pos += 4;
}
else {
// we have an escaped ascii character
$hexVal = substr ($source, $pos, 2);
$decodedStr .= chr (hexdec ($hexVal));
$pos += 2;
}
} else {
$decodedStr .= $charAt;
$pos++;
}
}
return $decodedStr;
}
转载于:https://www.cnblogs.com/linuxnotes/p/3265826.html
PHP中文URL编解码(urlencode()rawurlencode()相关推荐
- 常见加密解密和URL编解码
常见加密解密和URL编解码 Base64 概念: 基于64个可打印字符,用于表示二进制数据,使用的字符包括大小写拉丁字母各26个.数字10个.加号+和斜杠/,共64个字符,等号=用来作为后缀用途 2^ ...
- 命令行实现URL编解码
命令行实现URL编解码 文章目录 命令行实现URL编解码 1. 实现 2. 原理 2.1 url 的编码规则 2.2 printf 附:参考资料 1. 实现 这里的脚本在 GNU bash, vers ...
- MSDK手Q邀请透传参数问题:url编解码与base64编解码
最近做MSDK手Q的邀请功能,遇到一个坑,手Q结构化消息分享功能接口如下: /*** @param scene 标识发送手Q会话或者Qzone* eQQScene.QQScene_QZone: 分享到 ...
- Jva编解码,加密工具类大全(Base64编解码,URL 编解码,sha56_Hmac加密,MD5对字符串进行加密,java自带类实现SHA-256方式加密)
Base64编解码 /*** Base64编码.*/public static String encodeBase64(byte[] input) {return new String(Base64. ...
- javascript:URL编解码和父子窗口交互
简单的URL编解码 URL编码使用javascript的escape实现,在后台也可用System.Web.HttpUtility.UrlEncodeUnicode()实现. 在解码时使用javasc ...
- 小工具发布(2008-01-25更新,HTML、URL编解码工具)
(2008-01-25)HTML.URL编解码工具 [介绍文章][访问该工具]
- Base64、Unicode、URL编解码加解密
由IFTC(工作室链接:https://shequ.codemao.cn/work_shop/10892)制作的编解码加解密的APP 下载链接:https://creation.codemao.cn/ ...
- URLEncoder 、URLDecoder 对 URL 编解码,HttpURLConnection 文件下载
目录 URLEncoder 编码 URLDecoder 解码 URL 空格问题 与 HttpURLConnection 文件下载 URLEncoder 编码 1.public class URLE ...
- URL编解码、Big Endian和Little Endian
一.Endian的起源 在各种计算机体系结构中,对于字节.字等的存储机制有所不同,因而引发了计算机通信领域中一个很重要的问题,即通信双方交流的信息单元(比特.字节.字.双字等等)应该以什么样的顺序进行 ...
最新文章
- 基于Sharding Sphere实现数据“一键脱敏”
- window,windowManager --《android 艺术探索读书》笔记
- SilverLight显示中文字(一)
- 8086汇编寄存器及指令汇总
- ansible---基础
- mac电脑LC_CTYPE: cannot change locale (UTF-8): No such file or directory
- C++ Traits技术
- MatConvnet工具箱文档翻译理解五
- c++/cli 之数据库操作
- 火狐浏览器Json插件(JSONView)
- 工业互联网是什么,和工业4.0对比,有什么区别?
- 财务数字大小写转换函数代码
- Thinkphp5结合layer导入excel
- Linux ALSA音频驱动一:音频系统概述
- android 投屏mac,MAC投屏ipad、手机
- 用了这么久开源社区,还搞不明白免费/自由/开源软件?
- 复变函数与积分变换---复数
- 炸分王的省选2021(A)游记
- [ZT]系统学习Linux的11点建议
- 康托展开(八数码问题)
热门文章
- 5 可隐藏的侧栏_6种隐藏式设计,不仅实用,而且更显高级!
- Qt 操作words实例 --- 幼儿快算题生成器
- python 判断时间是否大于6点_48 python判断时间是否落在两个时区之间(只比较时刻不比较日期)...
- CVPR 2018 FlowTrack:《End-to-end Flow Correlation Tracking with Spatial-temporal Attention》论文笔记
- POJ 3614-Sunscreen
- BZOJ 2402 陶陶的难题II (树链剖分、线段树、凸包、分数规划)
- 【学习笔记】Sperner定理及其证明
- canvas 红包雨_天猫双十一怎么买省钱?京东双十一红包口令淘宝双十一活动攻略...
- python实现剑指offer删除链表中重复的节点
- 3. nginx的请求转发算法,如何配置根据权重转发