网上搜索了半天,大部分童鞋文中写到的都是通过转码,具体方法如下:
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系列的。