PHP采用get获取url汉字出现乱码的解决方法_php技巧
本文实例讲述了PHP采用get获取url汉字出现乱码的解决方法。分享给大家供大家参考。具体方法如下: 一、问题: 本来打算这样使用 复制代码 代码如下:<a href="list.php?plate=辖区动态" charset="utf-8" target="main">[查看辖区动态]</a> 结果在list.php页面得到的是—–查看[辖区动怿] 一开始猜想可能是汉字的“态"这个编码和某些东西冲突了,所以出现乱码。 二、解决方法: 使用: 复制代码 代码如下:<a href="list.php?plate=<?php echo urlencode("辖区动态");?>" charset="utf-8" target="main">[查看]</a> 然后在list.php页面这样用 复制代码 代码如下: <?php header("Content-type: text/html; charset=utf-8"); if($_GET['plate']) echo $plate=urldecode($_GET['plate']); ?>
也就不会乱码和传递不正常了。 注意此处的接收GET页面编码需要和发送端一致! 关于string urlencode ( string $str )函数 此函数便于将字符串编码并将其用于 URL 的请求部分,同时它还便于将变量传递给下一页。 示例1 urlencode() 复制代码 代码如下:<?php echo '<a href="mycgi?foo=', urlencode($userinput), '">'; ?> 示例2 urlencode() 与 htmlentities() 复制代码 代码如下:<?php $query_string = 'foo=' . urlencode($foo) . '&bar=' . urlencode($bar); echo '<a href="mycgi?' . htmlentities($query_string) . '">'; ?> 希望本文所述对大家的PHP程序设计有所帮助。 |