php的部分乱码问题集的解决方法
2010-12-04 22:33
302 查看
今天我终于开始自己写一个完整的web模板系统,是从零开始写起的,以前做网站都是通过网上下载一个模板,然后修改页面和部分动态代码,然后就ok了,但是今天不一样了,是从头开始,因而这个我的毕业设计,哈哈,没办法,我的毕业设计的题目是“基于php技术的企业网站的模板设计”,因而我今天开始写mvc的一些测试类,当然,首先从网上下载一个基于php的MVC留言本实例,这个实例有6个程序文件:分别是index.php程序入口,notebook.htm留言表单,然后新建一个文件夹,里面有Model.php,View.php,Controller三个文件分别实现MVC三个功能,还有一个DataAccess.php(是一个简单的数据库访问类),一开始我是通过系统右击新建文本文件来新建php文件的,这里需要提醒一下初学者,不要这样新建php文件,因为这样会导致中文乱码的,正确的方法是通过Dreamweaver新建,然后在导航菜单“编辑”->“首选参数”->“新建文档”里,把默认编码设置为“Unicode(UTF-8)”,“包括Unicode签名(BOM)”的复选框去掉,就可以解决在调用php类时,类中需要用到return方法来返回到静态页时,如果你不是按照以上的方式去做,有可能出现乱码;
乱码问题:
1、在index.php调用到View.php的方法时,在获取中文的时候出现乱码,解决方法,就是用Dreamweaver新建,按上述操作,可以解决乱码问题;
2、由于我用的是utf-8的字符集,所以mysql里也要设置为utf8的字符集,如mysql的连接校对:utf8_general_ci,而表里的字段的字符集是utf8_unicode_ci,在index.php的开头要写上<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />,然后再DataAccess.php里如下所示:
<?php
class DataAccess {
var $link_id; //用于存储数据库连接
var $query_id; //用于存储查询源
//! 构造函数.
function __construct($host,$user,$pass,$db) {
$this->link_id=mysql_pconnect($host,$user,$pass); //连接数据库服务器
mysql_select_db($db,$this->link_id); //选择所需数据库
mysql_query("SET NAMES 'utf8' ",$this->link_id);
}
function query($sql) {
$this->query_id=mysql_unbuffered_query($sql,$this->link_id); // Perform query here
if ($this->query_id) return true;
else return false;
}
function fetchRows($sql) {
$this->query($sql);
$arr=array();
$i=0;
while( $row=mysql_fetch_array($this->query_id,MYSQL_ASSOC) ) {
$arr[$i]=$row;
$i++;
}
return $arr;
}
}
?>
按照上面的操作基本你能解决从mysql读出的数据不会出现乱码;
乱码问题:
1、在index.php调用到View.php的方法时,在获取中文的时候出现乱码,解决方法,就是用Dreamweaver新建,按上述操作,可以解决乱码问题;
2、由于我用的是utf-8的字符集,所以mysql里也要设置为utf8的字符集,如mysql的连接校对:utf8_general_ci,而表里的字段的字符集是utf8_unicode_ci,在index.php的开头要写上<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />,然后再DataAccess.php里如下所示:
<?php
class DataAccess {
var $link_id; //用于存储数据库连接
var $query_id; //用于存储查询源
//! 构造函数.
function __construct($host,$user,$pass,$db) {
$this->link_id=mysql_pconnect($host,$user,$pass); //连接数据库服务器
mysql_select_db($db,$this->link_id); //选择所需数据库
mysql_query("SET NAMES 'utf8' ",$this->link_id);
}
function query($sql) {
$this->query_id=mysql_unbuffered_query($sql,$this->link_id); // Perform query here
if ($this->query_id) return true;
else return false;
}
function fetchRows($sql) {
$this->query($sql);
$arr=array();
$i=0;
while( $row=mysql_fetch_array($this->query_id,MYSQL_ASSOC) ) {
$arr[$i]=$row;
$i++;
}
return $arr;
}
}
?>
按照上面的操作基本你能解决从mysql读出的数据不会出现乱码;
相关文章推荐
- PHP使用PDO操作数据库的乱码问题解决方法
- php读mysql中文乱码问题解决方法
- php 各种应用乱码问题的解决方法
- PHP基于curl post实现发送url及相关中文乱码问题解决方法
- PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
- php 中文字符入库或显示乱码问题的解决方法
- PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
- PHP环境下utf8乱码的解决方法---apache,php配置问题
- php miniBB中文乱码问题解决方法
- PHP 页面编码声明方法详解(header或meta,解决中文乱码问题)
- PHP使用文件流下载文件方法(附:解决下载文件内容乱码问题)
- php 中文字符入库或显示乱码问题的解决方法
- php 读取xml的方法 (iconv解决中文乱码问题)
- php jpgraph的中文乱码问题及解决方法
- 关于PHP中出现乱码和Sessions验证问题的解决方法!
- PHP pdo编码乱码问题的解决方法
- php解决乱码问题时,出现Cannot modify header information问题的解决方法
- PHP解决URL中文GBK乱码问题的两种方法
- PHP Ajax中文乱码问题解决方法
- php 各种应用乱码问题的解决方法