4 回答

TA贡献2039条经验 获得超8个赞
路径不能直接传递汉字
传递汉字前先转换:
$zzwm = htmlentities(urldecode($_POST['zzwm']));
受到汉字信息,把信息编码
$zzwm = urlencode($_GET['zzwm']);
你也可以用js处理跳转
试一下这样吧

TA贡献1785条经验 获得超4个赞
是你的设计就有问题
首先说为什么传递参数中不能有中文
因为你做的程序可能会在任何服务器上运行,有些服务器可能是没有中文支持,也没有UTF-8支持,你的程序会根本无法运行。
就如同网址不能用中文一样。你只能把首页命名为index.php而不能命名为“首页.php”一个道理
其次说一下如何解决
据我判断,你的hello.php是为了告诉用户一些信息,比如发布成功,添加失败等。你需要提炼出所有的中问提示,放在一个公共数组中,例如:
$messages = array(
'sendok' => '发布成功',
'addok' => '添加成功‘,
)
这样,你传递参数只需要传递sendok,然后在显示的时候显示$messages[$_GET['zzwm']],就可以了。
这样也有利于你的程序翻译成多国语言,只需要替换你存放$messages的数组的文件即可。

TA贡献1843条经验 获得超7个赞
function covertToUTF8($val)
{
if(empty($val) || !function_exists('mb_convert_encoding'))
return false;
if(is_array($val))
{
foreach($val as &$v)
{
$v = covertToUTF8($v);
}
}
else
{
$val = mb_convert_encoding($val, 'UTF-8', 'GBK');
}
return $val;
}
$_GET = covertToUTF8($_GET);
var_export($_GET);
在调用GET前作用
如果还是一样,那就不是编码问题,可能你截取了汉字的一部分。

TA贡献1847条经验 获得超7个赞
一、用HTTP头信息(Header函数)
也就是用PHP的HEADER函数。PHP里的HEADER函数的作用就是向浏览器发出由HTTP协议规定的本来应该通过WEB服务器的控制指令,例如声明返回信息的类型("Context-type: xxxx/xxxx"),页面的属性("No cache", "Expire")等等。
用HTTP头信息使Php自动跳转到另外一个页面的方法如下:
<?php
$url = czbin.php
Header("HTTP/1.1 303 See Other");
Header("Location: $url");
exit;
?>
注意一下,"Localtion:"后面有一个空格。
二、利用HTML标记(META中的REFRESH属性)
用HTML标记,就是用META的REFRESH标记,举例如下:
<?php $url = czbin.php;?>
<HTML>
<HEAD>
<META HTTP-EQUIV="REFRESH" CONTENT="10; URL=<? echo $url;?>>
</HEAD>
<BODY>
</BODY>
</HTML>
注:这里的CONTENT="10 的意思是说10秒以后跳转。
三、用JAVASCRIPT脚本来实现
举例如下:
<?php
$url=czbin.php;
echo "<!--<SCRIPT LANGUAGE="JavaScript">";
echo "location.href='$url'";
echo "</SCRIPT>-->";
?>
- 4 回答
- 0 关注
- 221 浏览
添加回答
举报