http://localhost:8080/shangjia.php?area=辽宁
就是类似这样的网址 地址栏显示的汉字是没经过编码的 那么我在shangjia.php里怎么接收呢 ?
用$_GET['area']这样有的乱码 我想应该没这么简单吧,希望各位指导下 谢谢了
就是类似这样的网址 地址栏显示的汉字是没经过编码的 那么我在shangjia.php里怎么接收呢 ?
用$_GET['area']这样有的乱码 我想应该没这么简单吧,希望各位指导下 谢谢了
解决方案 »
- Apache重写问题。(避免重写css,js,图片等)
- 网站默认的用户和用户组是什么?
- 这种带箭头的写法是啥回事呢
- php向mysql加入数据,如果信息的字数过大,就会出现重复与乱码,望高手指教,急!谢谢!
- 只显示一条记录里的前几个字的功能怎么做啊?
- PHP+Apache的配置问题:Apache能显示html,但显示不了PHP
- 谁给一个PHP操作MYSQL用“事务”的例子吧
- 自己做的web文件上传页,本机上运行良好,传到虎翼发生错误,请高手指点
- ORACLE数据库与PHP的问题!参与者也有分,写完程序给100分
- 关注!!PHP与JSP的趋势问题!!给点意见就给分!!
- 如何用代码返回前两页?(非JS方法)
- imagecreatefromstring()函数的用法
我的php文件是utf-8 所以可用这个代码..如果你的不是,请稍微修改下就可以了.
中文参数接收一般会乱码的,不知道这些链接是否可以处理
http://localhost:8080/shangjia.php?area= urlencode('辽宁');
urldecode($_GET['area']); 这样是不会乱码的.如果链接不做处理,就不清楚怎么搞了.
echo $_GET['area'];
都得到了什么?中文操作系统中,在浏览器地址栏输入的汉字都是 gbk 编码的
如果你的页面时utf-8的,就需要转码,否则输出的就是乱码
学习了
老大的意思是不是这个:
如果在地址栏中输入中文,变成请求串时,编码是gbk.
如果这个请求不是在地址栏输入的,如是文件中链接,则是页面的编码?这个请求到了服务器那边?服务器如何解析编码?
是的!
你可以先做一个测试:
test.php
<?php
print_r($_GET);
?>
保存编码为ANSI(系统默认)在地址栏输入 http://localhost/test.php?a=汉 字
回车后浏览器地址栏内容为
http://localhost/test.php?a=汉%20字
页面显示
Array ( [a] => 汉 字 )将test.php另存为编码为UTF-8的
在地址栏输入 http://localhost/test.php?a=汉 字
回车后浏览器地址栏内容为
http://localhost/test.php?a=汉%20字
页面显示
Array ( [a] => �� �� ) 于是,你可以得到以下事实:
1、浏览器会对URL特殊字符做url编码转换
2、服务器端的url解码不是在php中进行的
3、传输前后的语言编码没有改变,所以后一例中出现了乱码进一步,把程序改为
<?php
print_r($_GET);
echo iconv('gbk', 'utf-8', $_GET['a']);
?>
于是,页面中显示
Array ( [a] => �� �� ) 汉 字结论是:
对于utf-8编码的页面,通过url传递的值是需要检查语言编码的
如果不是utf-8编码,则需要做编码转换
接收的时候 $strout = base_decode($str);
encodeurl()我用这两种的
Area="上海"
我是将汉字转换成数字了,数字就不受编码的限制!至于具体的实现,看lz的需求!!!我提供思路!