PHP接收GET中文参数乱码深入研究

如果gbk编码的页面生成的地址链接到utf-8的页面,gbk页面的中文是按照gbk的格式编码传送给下个页面,那么utf-8编码接收后肯定会出现乱码。

IIS的url重写模块,重写后的中文编码也是gbk,如果你的页面是utf-8编码,那么重写参数将会失效。

像这些情况,我们就需要使用php内置的转码函数来处理编码问题了:

方案1:

$str = iconv("gb2312","utf-8",$str);

或者

$str = iconv("utf-8","gb2312",$str);

方案2:

mb_convert_encoding($str, "utf-8", "gb2312");

或者

mb_convert_encoding($str, "gb2312", "utf-8");