php+mysql编码问题总结
要不出现乱码,就要保持数据库和页面的编码格式一致.我全部使用utf-8的编码.
首先页面:
1. 将文件用UE打开,将文件另存为UTF-8无BOM格式.很多编辑器都可用.
2.使用 header("content-type:text/html; charset=utf-8"); 强制转换成utf-8的编码.
也可以新建一个head.php,如下,在页面中用include("head.php");导入.
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
3.我使用的是eclipsePHP, 在菜单中 选择 项目-属性-信息,将文本编码改成UTF-8。其它的开发工具应该也有吧。
4.php.ini中将default_charset属性值改为utf-8.
数据库:
1. 建库的时候执行
CREATE DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
或者修改数据库编码
ALTER DATABASE 'test' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
2. 建表的时候执行
CREATE TABLE IF NOT EXISTS `test` (
....
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
或者修改数据表编码
ALTER TABLE 'test' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
3. 修改my.ini,设置 default-character-set=utf8
这是我的最终配置,可能有点画蛇添足的地方,请勿见怪!
这是搜集的一些mysql设置编码命令
SET character_set_client = utf8;
SET character_set_connection = utf8;
SET character_set_database = utf8;
SET character_set_results = utf8;
SET character_set_server = utf8;
SET collation_connection = utf8_bin;
SET collation_database = utf8_bin;
SET collation_server = utf8_bin;
相关文档:
问题一:cacti如法正常登录,没有报PHP程序错误
解决过程解决过程:开启PHP报错显示(在调试时,一直卡在这儿,由于是服务器上,没有开启报错程序)display_errors = On
发现报Warning: session_start() [ ......
以动手实践为荣 , 以只看不练为耻;
以打印日志为荣 , 以单步跟踪为耻;
以空格缩进为荣 , 以制表缩进为耻;
以单元测试为荣 , 以人工测试为耻;
以模块复用为荣 , 以复制粘贴为耻;
以多态应用为荣 , 以分支判断为耻;
以Pythonic为荣 , 以冗余拖沓为耻;
以总结分享为荣 , 以跪求其解为耻; ......
解决乱码最好的方法是在项目设计之初,统一所有的字符集,例如页面、request对象以及数据库等等。
一、 几种常见的乱码现象:
1、页面乱码
单纯的页面乱码是很好解决的,只要修改头部适合的字符集即可,如果页面中文显示乱码,你可以把字符集修改为:gb2312或gbk。
2、页面之间传递的参数是乱码 ......
1、选取最适用的字段属性
MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使 ......
MySQL语句优化的基本原则:
◆1、使用索引来更快地遍历表。
缺省情况下建立的索引是非群集索引,但有时它并不是最佳的。在非群集索引下,数据在物理上随机存放在数据页上。合理的索引设计要建立在对各种查询的分析和预测上。一般来说:
a.有大量重复值、且经常有范围查询( > ,< ,> =,< ......