背景:对于浏览器里有空格时候会转为%20,而还是是+,urlencode进行转换后 为什么空格是+号 不是%20?其实像Chrome浏览器显示的%20并不是urlencode,而是rawurlencode,摘自 :https://zhidao.baidu.com/question/808110280104926972.html 。
再就是对于一些线下二维码活动,如果二维码印错了,像上面多了一个不可见字符,是没法访问的,但印都印了,怎么办,得用Nginx的URLRewrite来解决掉。
http://XXXX.com/201*daiyanren-01.html ?fv=e5e131274705a31b5607b257ebe9c653
里面有一个空格,需要URL转写,但它不是空格,而是一个不可见的字符: .+
. 匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 \. 。
+ 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。
用\s也能匹配到:
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
这个不是空格看起来像是空格, 所以,它rawurlencode 后并不是%20:
php t.php
这个不是空格看起来像是空格:
html%C2%A0%3Ffv%3D
这个是空格是20%
rawurlencode
将字符串编码成 URL 专用格式。
语法: string rawurldecode(string str);
返回值: 字符串
函数种类: 编码处理
内容说明
本函数将字符串编码成 URL 的字符串专用格式,特殊的字符会转换成百分比符号后面加上二个十六位数字的格式。例如,空格就会变成 %20。
使用范例
<?php
echo '<a href="ftp://guest:', rawurlencode ('foo @+%/'), '@localhost/x.txt">';
?>
来自:http://www.t086.com/code/php/function.php-rawurlencode.php
附录,Nginx的Url转写抄录:
再就是对于一些线下二维码活动,如果二维码印错了,像上面多了一个不可见字符,是没法访问的,但印都印了,怎么办,得用Nginx的URLRewrite来解决掉。
http://XXXX.com/201*daiyanren-01.html ?fv=e5e131274705a31b5607b257ebe9c653
里面有一个空格,需要URL转写,但它不是空格,而是一个不可见的字符: .+
. 匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 \. 。
+ 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。
用\s也能匹配到:
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
这个不是空格看起来像是空格, 所以,它rawurlencode 后并不是%20:
php t.php
这个不是空格看起来像是空格:
html%C2%A0%3Ffv%3D
这个是空格是20%
rawurlencode
将字符串编码成 URL 专用格式。
语法: string rawurldecode(string str);
返回值: 字符串
函数种类: 编码处理
内容说明
本函数将字符串编码成 URL 的字符串专用格式,特殊的字符会转换成百分比符号后面加上二个十六位数字的格式。例如,空格就会变成 %20。
使用范例
<?php
echo '<a href="ftp://guest:', rawurlencode ('foo @+%/'), '@localhost/x.txt">';
?>
来自:http://www.t086.com/code/php/function.php-rawurlencode.php
附录,Nginx的Url转写抄录:
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/9128/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
最后编辑: jackxiang 编辑于2016-12-20 23:18
评论列表