导航:首页 > 编程语言 > phpurlencode编码

phpurlencode编码

发布时间:2024-04-25 02:36:28

A. php中有没有类似urlencode一样转换英文字符的函数

这是两个php自带的unicode标准函数,具体用法可以查manuel
第一个参数是你要转换的字符串
第二个参数是encode的类型例如'ISO-8859-2'
第三个参数可以不用.
string unicode_encode ( unicode $input , string $encoding [, int $errmode ] )

unicode unicode_decode ( string $input , string $encoding [, int $errmode ] )

B. urlencode进行转换后 为什么空格是+号 不是%20

可以看看PHP的函数urlencode() 和 rawurlencode()函数的实现方式,第二个是raw转换,会把对应的空格更换成 %20 的编码方式。

%20 是空格的 URL 字符编码。

[ol][*] [*]$new_true_url = iconv('gbk','utf-8',$true_url);

[*]$down_true_url =??urlencode($new_true_url);

[*]$down_true_url =str_replace("%3A%2F%2F", "://", $down_tr。

使用编码函数就可以将特定字符转换成规定的字符编码,包括空格等。解码函数功能刚好相反。参数是需要处理的字符串,返回值是处理好的字符串。不过这些函数作用都有差异,详细内容可以自己查看资料。

(2)phpurlencode编码扩展阅读:

编码原理:

将需要转码的字符转为16进制,然后从右到左,取4位(不足4位直接处理),每2位做一位,前面加上%,编码成%XY格式。

比如:

空格ASCII码是32,对应16进制是20,那么urlencode编码结果是:%20,但在新标准中空格对应的是+,见RFC-1738

比如:

中ASCII码是-10544,对应的16进制是D6D0,那么urlencode编码结果是:%D6%D0。

C. 为什么php中用了urlencode处理字符串后,浏览器自动又转了回来

有两中解决办法:
1.文件编码改为ansi类型的,
2.文件类型还是为utf-8的,
$bdc_music_title_encode=urlencode($bdc_music_title_encode);
改为:
$bdc_music_title_encode=iconv('utf-8','gbk',$bdc_music_title_encode);
$bdc_music_title_encode=urlencode($bdc_music_title_encode);

D. php中强制下载文件的代码(解决了IE下中文文件名乱码问题)

中间遇到一个问题是提交的中文文件名直接放到header里在IE下会变成乱码,解决方法是将文件名先urlencode一下再放入header,如下。
复制代码
代码如下:
<?php
$file_name
=
urlencode($_REQUEST['filename']);
header("Pragma:
public");
header("Expires:
0");
header("Cache-Control:
must-revalidate,
post-check=0,
pre-check=0");
header("Content-Type:
application/force-download");
header('Content-Type:
application/vnd.ms-excel;
charset=utf-8');
header("Content-Transfer-Encoding:
binary");
header('Content-Disposition:
attachment;
filename='.$file_name);
echo
stripslashes($_REQUEST['content']);
?>
解决PHP
Header下载文件在IE文件名中文乱码有两种常见的,一种是是把页面编码改成utf8,另一种是对中文url进入urlencode编码就可以解决了。
解决方案一(我的页面是utf-8编码):
复制代码
代码如下:
$filename
=
"中文.txt";
$ua
=
$_SERVER["HTTP_USER_AGENT"];
$encoded_filename
=
urlencode($filename);
$encoded_filename
=
str_replace("+",
"%20",
$encoded_filename);
header('Content-Type:
application/octet-stream');
if
(preg_match("/MSIE/",
$ua))
{
header('Content-Disposition:
attachment;
filename="'
.
$encoded_filename
.
'"');
}
else
if
(preg_match("/Firefox/",
$ua))
{
header('Content-Disposition:
attachment;
filename*="utf8'''
.
$filename
.
'"');
}
else
{
header('Content-Disposition:
attachment;
filename="'
.
$filename
.
'"');
}
解决方法二
将文件名先urlencode一下再放入header,如下。
代码如下:
复制代码
代码如下:
<?php
$file_name
=
urlencode($_REQUEST['filename']);
header("Pragma:
public");
header("Expires:
0");
header("Cache-Control:
must-revalidate,
post-check=0,
pre-check=0");
header("Content-Type:
application/force-download");
header('Content-Type:
application/vnd.ms-excel;
charset=utf-8');
header("Content-Transfer-Encoding:
binary");
header('Content-Disposition:
attachment;
filename='.$file_name);
echo
stripslashes($_REQUEST['content']);
?>

E. PHP的。UTF-8编码的网页下面,如何将urlencode转成GB2312编码的

echo urlencode(iconv('utf-8', 'gb2312', '中国人'));
先把 中国人 编码转成 gb2312,然后再urlencode编码一次

阅读全文

与phpurlencode编码相关的资料

热点内容
类似保罗和妈妈的电影 浏览:420
luapython哪个值得学习 浏览:96
cad2007连续标注命令 浏览:651
通路云服务器还可以做什么用 浏览:191
完美男人法国版讲的是什么 浏览:937
大露的电影 浏览:149
数字加密后被人截取 浏览:848
丹尼尔斯斯托米·丹尼尔斯中出 浏览:151
推荐几部食人族的老电影 浏览:448
怎么看汇编程序运行的结果 浏览:911
怎么算程序员催更 浏览:46
c编程研究前景 浏览:322
电影最全的网站 浏览:918
爱因斯坦电影天才百度云链接 浏览:75
流氓不可以看的视频 浏览:54
代号白雪公主的电影 浏览:388
女主在军校很厉害的小说 浏览:516
米思齐为什么要编译才有效 浏览:283
法人如何用app分配权限 浏览:486