php url地址栏传中文乱码解决方法集合


Posted in PHP onJune 25, 2010

php地址栏传中文$_GET下来后乱码,urlencode和urldecode用法详解
url编码
语法: string urlencode(string str);
返回值: 字符串
函数种类: 编码处理
例如:

<?php
$ChineseName="我的名字,是中文的哦";
$EncodeStr=urlencode($ChineseName);
echo "<a href=/cgi/personal.cgi?name=$EncodeStr>我的名字</a>";
?>

url解码
还原 URL 编码字符串。
语法: string urldecode(string str);
返回值: 字符串
函数种类: 编码处理
例如:
对前面传过来的中文进行处理显示
<?php
$DecodeStr=urldecode($_GET['name']);//你可能不用解码都可以,因为浏览器会自动帮你解码
echo $DecodeStr;
?>

关于php用get方法从url上获得的中文乱码问题

使用$gonghui = iconv("gb2312","UTF-8",$gonghui);另一方法代码
/**
* 多字节字符串编码转换函数
*
* @param string str 需要进行编码转换的字符串
* @param string to_encoding 指定转换为某种编码,如:gb2312、gbk、utf-8等
* @param mixed from_encoding 混合指定原来字串的编码,如:同时指定 JIS, eucjp-win, sjis-win 混合编码
* @return string
string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] )
**/
mb_convert_encoding 函数为php内部多字节字符串编码转换函数,可以在有需要的使用场合,几乎支持所有编码。PHP  >= 4.0.6、 5 版本支持。

直接获取 reg.php?gh=某某;

 //工会登入参

$gonghui = $_GET['gh'];

获得的$gonghui 为gb2312编码 输出到utf-8网页上显示乱码

改成

 //工会登入参数
 $gonghui = $_GET['gh'];
 $gonghui = mb_convert_encoding($gonghui, "UTF-8", "gb2312");

 就显示正常了

对整个页面进行转换

该方法适用所有编码环境。这样把前128个字符以外(显示字符)的字符集都用   NCR(Numeric character reference,如“汉字”将转换成“汉字”这种形式)来表示,这样的编码在任意编码环境下页面都能正 常显示。

在php文件的头部加上下面三行代码:

mb_internal_encoding("gb2312");  // 这里的gb2312是你网站原来的编码     
mb_http_output("HTML-ENTITIES");     
ob_start('mb_output_handler'); 

使用mb_convert_encoding 函数需启用PHP 的mbstring (multi-byte string)扩展。

如果没有没有开启php的mbstring扩展,则需要做如下设置,让php支持该扩展。

1、windows 服务器环境
编辑 php.ini 文件,将; extension=php_mbstring.dll 前面的 ; 去掉,重启网页服务器。

2、Linux服务器环境
在编译配置时加入 --enable-mbstring=cn 编译参数,再进行PHP的编译安装。

其它网友的第三个参考方法:
//方法一 urldecode
$url = 'aaa.php?region='.urldecode("四川省");
<a href="<?php echo $url;?>">aaa </a>

//方法二base64_encode

<?
$test="四川省";
$test1=base64_encode($test);
echo '<a href="3water.com?region=$test1">aaa </a>';
?>

另一页面使用base64_decode解开

base64_decode($region);

//方法三让服务器支持中文

[root@dhcp ~]# locale

lang=zh_cn.utf-8
lc_ctype="zh_cn.utf-8"
lc_numeric="zh_cn.utf-8"
lc_time=c
lc_collate=c
lc_monetary="zh_cn.utf-8"
lc_messages="zh_cn.utf-8"
lc_paper="zh_cn.utf-8"
lc_name="zh_cn.utf-8"
lc_address="zh_cn.utf-8"
lc_telephone="zh_cn.utf-8"
lc_measurement="zh_cn.utf-8"
lc_identification="zh_cn.utf-8"
lc_all=
[root@dhcp ~]#

PHP 相关文章推荐
开启CURL扩展,让服务器支持PHP curl函数(远程采集)
Mar 19 PHP
PHP session有效期session.gc_maxlifetime
Apr 20 PHP
php学习笔记 类的声明与对象实例化
Jun 13 PHP
PHP5函数小全(分享)
Jun 06 PHP
PHP获取MAC地址的具体实例
Dec 13 PHP
Smarty中调用FCKeditor的方法
Oct 27 PHP
php实现在多维数组中查找特定value的方法
Jul 29 PHP
php如何执行非缓冲查询API
Jul 22 PHP
深入理解PHP类的自动载入机制
Sep 16 PHP
ThinkPHP3.1.x修改成功与失败跳转页面的方法
Sep 29 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
Feb 07 PHP
php实现JWT(json web token)鉴权实例详解
Nov 05 PHP
PHP+ACCESS 文章管理程序代码
Jun 21 #PHP
php $_SERVER[&quot;REQUEST_URI&quot;]获取值的通用解决方法
Jun 21 #PHP
php自动加载的两种实现方法
Jun 21 #PHP
PHP定时自动生成静态HTML的实现代码
Jun 20 #PHP
PHP XML操作的各种方法解析(比较详细)
Jun 17 #PHP
PHP操作xml代码
Jun 17 #PHP
PHP XML error parsing SOAP payload on line 1
Jun 17 #PHP
You might like
上海无线电三厂简史修改版
2021/03/01 无线电
php插入排序法实现数组排序实例
2015/02/16 PHP
php中preg_replace正则替换用法分析【一次替换多个值】
2017/01/17 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
2018/06/16 PHP
Laravel 5+ .env环境配置文件详解
2020/04/06 PHP
一段好玩的JavaScript代码
2006/12/01 Javascript
Mootools 1.2教程 设置和获取样式表属性
2009/09/15 Javascript
js鼠标左右键 键盘值小结
2010/06/11 Javascript
jquery 简单应用示例总结
2013/08/09 Javascript
js实现遮罩层划出效果是生成div而不是显示
2014/07/29 Javascript
详解JavaScript中数组的相关知识
2015/07/29 Javascript
信息页文内画中画广告js实现代码(文中加载广告方式)
2016/01/03 Javascript
js实现下拉框效果(select)
2017/03/28 Javascript
AngularJS实现单一页面内设置跳转路由的方法
2017/06/28 Javascript
AngularJs ng-change事件/指令的用法小结
2017/11/01 Javascript
Angular CLI在Angular项目中如何使用scss详解
2018/04/10 Javascript
vue-cli3+typescript初体验小结
2019/02/28 Javascript
Vue Extends 扩展选项用法完整实例
2019/09/17 Javascript
JS通用方法触发点击事件代码实例
2020/02/17 Javascript
分分钟入门python语言
2018/03/20 Python
python实现五子棋小程序
2019/06/18 Python
pandas DataFrame创建方法的方式
2019/08/02 Python
tensorflow ckpt模型和pb模型获取节点名称,及ckpt转pb模型实例
2020/01/21 Python
用 Python 制作地球仪的方法
2020/04/24 Python
Python爬虫回测股票的实例讲解
2021/01/22 Python
HTML5 离线应用之打造零请求、无流量网站的解决方法
2013/04/25 HTML / CSS
Ego Shoes官网:英国时髦鞋类品牌
2020/10/19 全球购物
物流毕业生个人的自我评价
2014/02/13 职场文书
计划生育证明书写要求
2014/09/17 职场文书
2014审计局领导班子民主生活会对照检查材料思想汇报
2014/09/20 职场文书
离婚协议书范本及离婚须知
2014/10/15 职场文书
工厂员工辞职信范文
2015/05/12 职场文书
好人好事新闻稿
2015/07/17 职场文书
zabbix agent2 监控oracle数据库的方法
2021/05/13 Oracle
vue实力踩坑之push当前页无效
2022/04/10 Vue.js
ubuntu下常用apt命令介绍
2022/06/05 Servers