易截截图软件、单文件、免安装、纯绿色、仅160KB

PHP中文乱码的三个原因及解决方法


我们在做PHP项目的时候,经常会遇到中文乱码的问题,有时候编码问题还导致MYSQL的报错。中文乱码总共有三个原因
1:APACHE服务器设置导致乱码
2:PHP,或者HTML页面编码导致中文乱码
3:MYSQL数据库的表以及字段编码导致中文乱码
我们分别从这三个部分来探究PHP程序设计中的编码问题
在这之前我们要了解一些基本理论:
1、文件编码
每个文件在保存的时候都可以选择以什么编码保存,例如用WINDOWS的记事本创建一个文件可以选择ANSI 以及UTF8等等编码。我们选择了什么编码该文件就以这种编码方式保存在硬盘上。 读取该文件数据的时候也会指定一种编码来打开,如果指定的编码与文件保存的时候的编码不一样的话就会出现乱码
2、HTML的编码
在网页头部一般有这样一个<HEAD>区域
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
这个的意思是让客户端知道,接下来输出的是html代码(text/html),并且以下输出的内容都将是utf-8编码的。如果我们用记事本创建一个HTML文件 该文件包含
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
但是在保存的时候却以ANSI编码格式保存,那么我们用浏览器打开这个文件时,浏览器看见META 行的UTF8编码设置后 就将文件以UTF8格式输出,而文件本来是ANSI编码,这样便出现了中文乱码。
一:APACHE服务器编码
在APACHE配置文件中有一行是编码的设置 默认的是AddDefaultCharset ISO-8859-1,大部分人认为应该将这句改为 AddDefaultCharset UTF-8 。而蜗牛认为这是误人子弟。 这项配置是告诉APACHE服务器选用什么样的编码来输出WEB页面(这样做会忽略,HTML页面中的页面编码的设置 EG:<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />),如果我们建立一个GB2312的页面就会出现中文乱码 。所以最好的方法是将AddDefaultCharset ISO-8859-1这一项注释掉 #AddDefaultCharset
二:PHP编码问题
php最终生成的是文本文件,而他要从数据库中取出文本数据,还要把文本数据写到数据库中。由于MYSQL并不知道PHP发送给他的是什么编码的数据,所以需要客户端PHP告诉他存取的是什么编码的数据。


相关文档:

CentOS通过yum升级php到5.2.9版本的方法

CentOS的php版本默认为5.1.6,然后在5.2.9版本之前的的php都存在一个漏洞,但是目前网上很多地方都无法使用yum update php*升级到5.2.9,比较常见的是升级到5.2.6版本的,经过搜索国外资料,现在终于找到一种升级CentOS的php到5.2.9的方法。
运行下面命令:
# wget http://download.fedora.redhat.com/pub/epel/5/i386/ep ......

php获取客户端IP地址的几种方法

PHP Code one: //php获取ip的算法
$iipp=$_SERVER["REMOTE_ADDR"];
echo $iipp; PHP Code two: //php获取ip的算法
$user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
$user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"];
echo $ ......

如何将php获得的时间转换为北京时间

从php5.10开始,php中加入了时区的设置,在php中显示的时间都是格林威治标准时间,这就造成了我们中国的用户会差八个小时的问题!
相关设置是修改php.ini中的 date.timezone 参数:
[Date]
; Defines the default timezone used by the date functions
;date.timezone =
默认是关闭的,只需把注释去掉,改为即可
[Dat ......

php while 与do while的区别

本教程来讲一下关于在php编程中常用到的循环语句do while与while的区别吧,while 是当条件为真是才执行而do while至少会执行一下,下面我们就来看看
do {
}while(条件)
看do while的实例吧。
<?
$a =10;
do {
echo $a;
}while ($a>11)
这里会输出10;然后循环终止,那么我们来看看while的实例吧。
$a=10;
w ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号