Home  >  Article  >  Backend Development  >  ThinkPHP采用GET方式获取中文参数查询无结果的解决方法_php实例

ThinkPHP采用GET方式获取中文参数查询无结果的解决方法_php实例

WBOY
WBOYOriginal
2016-05-17 08:40:271318browse

在用ThinkPHP做tags标签的时候,出现了一个问题,就是能获取到参数,但是查不出相应的结果。查看数据库发现数据是存在的。问题出在哪了呢?

形如http:/www.XXXX.com/tags/index/%E8%87%AA%E5%8A%A8%E9%AA%8C%E8%AF%81.html的调用

参数是经过urlencode()编码了的,使用urldecode()函数进行解码,再进行查询仍然没有结果。
紧接着测试转换编码iconv()函数,结果成功了。

浏览器默认的编码是GB2312的,而这个项目采用的是UTF-8编码的。
下面就将错的代码和修正后的代码给大家看一下:

$kw= $_GET['_URL_']['2'];   //错误的代码,在iis上能获取的参数,但是查询不出结果的。
$kw= iconv("gb2312","utf-8",$_GET['_URL_']['2']); //经过编码转换的,能够查询出结果的。

另外,本方法只适用于iis环境
还要注意,$_GET接收参数的时候本身就有urldecode转码功能,不需要再进行urldecode解码操作!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn