导航:首页 > 编程语言 > 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编码相关的资料

热点内容
交换机关闭所有端口命令 浏览:91
程序员可以开网店吗 浏览:115
算法工程师面试经验 浏览:686
有什么好用的陪聊app 浏览:698
什么是备中心服务器 浏览:144
linux配置本地yum源 浏览:539
半导体器件与工艺pdf 浏览:528
超大文件解压太慢 浏览:861
微光app主页的爱心代表什么意思 浏览:563
程序员和饺子做饭 浏览:307
美团app的点击骑车在哪里 浏览:723
程序员标配条件 浏览:211
免费电脑解压app排行榜前十名 浏览:189
顺序表查找算法 浏览:463
整合包解压后是乱码 浏览:300
xp系统如何查找服务器名 浏览:983
土的压缩系数的确定方法 浏览:647
程序员家里健身 浏览:620
电视看篮球app哪个好 浏览:47
高中毕业当程序员 浏览:245