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

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

复制代码 代码如下:

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

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=#>

//方法二base64_encode

<?
$test="四川省";
$test1=base64_encode($test);
echo '<a href=#>?>

另一页面使用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 //thinkphp 路由定义规则 $route = array( 'news/:action/:year\d/:month/:day'='news/read?year=:2month=:3day=:4', 'news/:action^delete|update|insert/:year\d/:month/:day'=array( 'news/read?extra=:2status=1','year=:2month=:3day=:4'), ); $url = 'http:/

eAccelerator的安装与使用详解 - 2015-04-11 14:04:13

一、PHPeAccelerator安装 去https://github.com/eaccelerator/eaccelerator/downloads下载最新版安装包,解压安装包,进入解压后的文件夹目录, 编译: 复制代码 代码如下: $PHP_PREFIX/bin/phpize ./configure--enable-shared --with-php-config=$PHP_PREFIX/bin/php-config make 安装: 复制代码 代码如下: makeinstall 修改php.ini:
在WEB开发过程中,我们经常要获取来自于世界各地的用户输入的数据。但是,我们“永远都不能相信那些用户输入的数据”。所以在各种的Web开发语言中,都会提供保证用户输入数据安全的函数。在PHP中,有些非常有用并且方便的函数,它们可以帮助你防止出现像SQL注入攻击,XSS攻击等问题。 1. mysql_real_escape_string() 这个函数曾经对于在PHP中防止SQL注入攻击提供了很大的帮助,它对特殊的字符,像单引号和双引号,加上了“反斜杠”,确保用户的输入在用它去查询之前已经是安全的了。但你要注意
一、概述: 本文详解了PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法。 首先要实现PHP使用php_imagick_st-Q8.dll类库,把JPG图片连接生成GIF动画图片,需要事先 下载好php_imagick_st-Q8.dll动态链接库文件,并配置php.ini文件,启用php_imagick_st-Q8.dll 。 二、配置方法如下: 1、 将下载的php_imagick_st-Q8.dll文件放到PHP默认的扩展目录,也就是:php/ext/目录内 ; 2、

浅谈Eclipse PDT调试PHP程序 - 2015-04-11 11:04:28

1. 下载eclipse,从官网上找就可以了,并确认当前系统中有java环境,即jdk和jre。 2. 安装pdt了,采用的是在线安装,更新地址在默认中已经包含了。只是更新起来比较麻烦。(如果直接下载 携带PDT的 Eclipse版本,可省略) 3. 下载调试器,调试器有两种,一种时xdebug,另一种时zenddebug,本文采用 xdebug。 下载下来的应该是源代码包。解压缩,然后cd到目录,然后phpize,有的时候可能没有这个程序,运行sudo apt-get install php5-dev,
//保存图片到数据库的php代码 复制代码 代码如下: If($Picture != "none") { $PSize = filesize($Picture); $mysqlPicture = addslashes(fread(fopen($Picture, "r"), $PSize)); mysql_connect($host,$username,$password) or die("Unable to connect to SQL server"); @mysql_select_db($db) or
PDOStatement::bindParam — 绑定一个参数到指定的变量名。 绑定一个PHP变量到用作预处理的SQL语句中的对应命名占位符或问号占位符。 不同于 PDOStatement::bindValue() ,此变量作为引用被绑定,并只在 PDOStatement::execute() 被调用的时候才取其值。 PDOStatement::bindValue — 把一个值绑定到一个参数。 绑定一个值到用作预处理的 SQL 语句中的对应命名占位符或问号占位符。 复制代码 代码如下: ?php $st

写出高质量的PHP程序 - 2015-04-11 11:04:40

一、安全 无论程序写的如何,首先安全是第一位的,没有安全保障的程序根本不能谈高质量。 二、稳定 无论你代码写的再烂,必须要能稳定运行。 三、用户体验 用户的体验直接决定着一个程序的命运,根本不懂用户体验的程序高质量便无从谈起。 四、商业体验 开发应用的目的自然是为了赚钱,我认为,再优秀的程序,不赚钱也等于是一个废物。 五、效率 这是最后一个了,一直认为性能是最次要的,PHP程序本身的效率就不是太高,只所以能如此流行主要是开源和开发成本低而已。这个问题不想再去说,有的程序员想从PHP代码上来提高性能,呵呵,
php读取文件 案例一 复制代码 代码如下: ?php $file = 'jb51.net.php'; //本案例不支持远程 $fso = fopen($file, 'r'); echo $data = fread($fso, filesize($file)); fclose($fso); ? fopen() 将 file 指定的名字资源绑定到一个流上. filesize 返回文件大小的字节数,如果出错返回 FALSE. 注: 因为 PHP 的整数类型是有符号的,并且大多数平台使用 32 位整数,files
我的环境是appsver包, 在网上最常出现的解决中文乱码显示的代码是: 第一种:PDO::__construct($dsn, $user, $pass, array (PDO::MYSQL_ATTR_INIT_COMMAND = "SET NAMES'utf8';")); 我试过用第一种方法,可结果是,name字段只显示一个‘C'字符。之后的本该显示中文的地方却是空白。 结果是这样的:如图1示 我是只要解决的:直接将UTF8替换成了GBK,就可以了,即: PDO::__construct($dsn, $u