为什么PHP中GET值乱码?

网上搜索了半天,大部分童鞋文中写到的都是通过转码,具体方法如下:

header("Content-Type: text/html; charset=utf-8");
$str = trim($_GET['name']); 

//$str = iconv("GB2312","UTF-8",$str);
$str = mb_convert_encoding($str, "UTF-8", "GB2312");

echo $str;

问题还没解决咧,接下来看测试文字:

綿部なつみ

试问一下,GET传递值跟网页的编码有关系吗?

没关系,乱码是url传值产生的,而不是字体本身编码的问题。

header("Content-Type: text/html; charset=utf-8");
$str = trim($_GET['name']); 
$str=urlencode($str);
 
$str=urldecode($str);
echo $str;

GET传值之前用urlencode编码一下,传过去再用urldecode解码。

是什么导致这个问题的发生呢?

答案是浏览器默认编码在作怪,我们都用的是中文系统,浏览器默认的编码自然也会设置为本地化,例如我自己电脑上的IE的FireFox的默认编码都是gb系列的。

转载请注明出处:https://www.onexin.net/why-php-get-values-in-garbled/

随机文章:

1、mod_expires安装和配置 提高网站速率
https://www.onexin.net/mod_expires%e5%ae%89%e8%a3%85%e5%92%8c%e9%85%8d%e7%bd%ae-%e6%8f%90%e9%ab%98%e7%bd%91%e7%ab%99%e9%80%9f%e7%8e%87/

2、Discuz!Q 容器的更多配置说明?
https://www.onexin.net/discuzq-docker/

3、CSS语法手册之分类属性
https://www.onexin.net/properties-of-the-css-syntax-manual-classification/

4、深入理解Magento – 第六章 – 高级Magento模型
https://www.onexin.net/depth-understanding-of-magento-chapter-vi-advanced-magento-model/

5、PHP设计模式(十五)—迭代模式(Iterator Pattern)
https://www.onexin.net/php-iterator-pattern/

Leave a Reply