[字号:  ]

urlencode编码后,结果不正常

发布时间:2008-11-15 03:03   作者: 枪炮牛仔   信息来源: PHPChina 开源社区门户
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>


<?php
function str_encode($str)
{
        return

  $str=urlencode($str);
  $str=str_replace('+','%20',$str);  
  
}
echo str_encode('彩 sss');

echo urlencode('彩 sss');
?>

=================================================================
这段源码中的:彩 sss
进行urlencode编码后,
这两个结果正常得出应该是:
%B2%CA%20sss

%B2%CA+sss


为什么得出的是:
%E5%BD%A9%20sss

%E5%BD%A9+sss

[ 本帖最后由 枪炮牛仔 于 2008-11-15 03:09 编辑 ]

最新回复

枪炮牛仔 at 2008-11-15 10:42:11
咋办呢?????
syb328 at 2008-11-15 10:44:29
function的返回值呢?。。
liexusong at 2008-11-15 10:53:51
function str_encode($str)
{
        return

  $str=urlencode($str);
  $str=str_replace('+','%20',$str);  
  
}
这里错了!
枪炮牛仔 at 2008-11-15 11:00:13
谢谢楼上提醒,

function改成这样,好象OK啦,呵呵。
function str_encode($str)
{
            $str=iconv('UTF-8','GB2312',$str);
                $str=urlencode($str);
                $str=str_replace('+','%20',$str);       
                return         $str;               
}
d9tx at 2008-11-15 11:05:57
因为字串是UTF-8编码,

在GBK编码下   %B2%CA%
在UTF-8编码下 %E5%BD%A9
枪炮牛仔 at 2008-11-15 11:22:13
哦,原来是这样。

这种转码之后,在我的浏览器上可以正常显示了,

但是否他也可以支持不同浏览器都可以正常显示啊。