中文参数传递,URL伪静态后标题乱码如何解决

在对搜索结果页做伪静态时显示乱码。我是用$q = empty($_GET['q'])?'0':$_GET['q'];来查询结果,用keyword = iconv("GBK","UTF-8",$q);来传递的,然后在页面中会用<?php echo $string = str_replace(' ','',$q); ?>来调用查询的关键词。目前页面调用关键词没乱码,打开用通用编码的伪静态网址如:%D1%A9%B7%C4%C9%C0-16-0.html时显示正常,但如果直接打开网址:雪纺衫-16-0.html时,查询的关键词变成乱码,无法查询结果,所有关键词调用也变成乱码。后来我试着加了一行代码测试:$keyword=iconv('UTF-8', 'gb2312//IGNORE',$q); 然后改为<?php echo $string = str_replace(' ','',$keyword); ?>,这时直接打开“雪纺衫-16-0.html”显示正常,也能查询到结果,但直接在搜索框中查询关键词时又出现<?php echo $string = str_replace(' ','',$q); ?>不能查询关键词也不能调用了,并且在直接打开网址“%D1%A9%B7%C4%C9%C0-16-0.html”也不能查询关键词了。试了很多种办法,还是不行。请哪位高手指教下,先谢过了!

作者: digicach   发布时间: 2010-05-05

估计你的语文水平很一般。。。。。

作者: yangball   发布时间: 2010-05-05

看了半天没看懂

作者: piaolankeke   发布时间: 2010-05-05

@_@

作者: lukylfm   发布时间: 2010-05-05

我的也是这样的。很奇怪,以前都是直接接收就可以了,可是现在怎么都不行,完全乱码的。

作者: default7   发布时间: 2011-05-25

我测试了一下,发现可以直接传递中文,我的做法是:
1,用editplus新建php文件,保存的时候文件编码一定要选择utf8
2,该php的文件头也要设置为utf8,即
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
这样在地址栏传参数的时候就可以是中文不乱码了.

作者: sibang   发布时间: 2011-05-25